Search
Write a publication
Pull to refresh
0
0
Штаюра Вадим @Vadun

User

Send message
Приходится что-то отсекать: 3 семестров института (2 подряд идущие пары информатики в неделю) мало чтобы в охватить и императивные, и ОО, и функциональные языки до уровня, достаточного для применения. 4 семестр у нас занимают т.н. проекты: студенты разбиваются на группы по 2-3 человека и весь семестр делают что-то значительное. Поэтому за три предыдущих семестра надо кроме языков и алгоритмов рассказать ещё как реализовывать GUI, использовать cеть, потоки и синхронизацию, прочие средства ОС. Вот времени и получается очень мало…
При выборе курса я основывался на том, что ООП скилы на данный момент значительно более востребованы на рынке труда, чем знание функциональных языков. Ну и ещё одним фактором послужило то, что я сам не знаю ни одного чисто функционального языка :) Кроме того, у нас в институте есть дополнительные курсы по Питону и Руби, так что все желающие могут ознакомится с этими языками. Были начинания и с FP (на примере Scheme), но благополучно загнулись, т.к. на первое занятие пришло 2 человека…
Насчёт функциональных языков для параллельных вычислений: я только за, но у древних дядечек из ниститутов РАН, которые их приподают, глаза на лоб полезут от вида эрланга и прочих… Вся эта академическая среда довольно инертна, к сожалению.
Преподавал группе студентов основы Си, затем Java, затем C++.
Пожалел о таком решении: многие с трудом понимают что такое стек (имеется ввиду тот что в x86) и где лежат локальные переменные, как на низком уровне работает вызов ф-ций -> отсюда трудное понимание механизмов работы C++ (таблица вирт функций и т.п.), отсюда проблемы с применением ООП.
Следующей группе устрою семестр ассемблера, чтобы затем знали хоть как оно всё работает…
Насчёт питона: после Cи предложил самим студентам выбрать из Python, Java, C#, C++, описав вкратце возможности языков, область применения и популярность. Выбрали Java…

После Питона научить чему-либо более низкоуровневому, мне кажется, сложно. А в условиях института (по крайней мере нашего) им значительно чаще потребуется Cи, чем Питон (на старших курсах у многих есть MPI, вычматы и прочие расчётные штуки на базах, хотя база ИСП РАН меня порадовала, там алгоритмы по крайней мере прототипируют на Питоне).
Я не веб-разработчик, так что мне понравилось.
Лекция про V8 была вполне познавательна, я наконец-то понял как конкретно V8 оптимизирует выполнение JS.
Лекция о GAE тоже получилась полезной, по большей части благодаря хорошему докладчику.
С GWT похуже… Ничего особо сложного и малоизвестного не рассказывалось, докладчик вещал довольно монотонно, на слайдах сорс код был не очень хорошо виден из-за серого на белом фоне…
В целом, о платформе 2008 у меня более приятные воспоминания.
Вот. Там ещё шрифты внутри (Consolas как основной, и Dina для Output Window).
Уже около месяца пользуюсь подобной. Немного модифицировал Output Window.
Вот как всё выглядит: скриншот моей VS (~100Кб)
C++:
class SomeClass
{
public:
void Method(int someArg)
{
int someLocal;
}

private:
int _somePrivate;
};
… resulting native code.
Не это ли самое основное?
Принцип JIT компиляторов как раз в том, что перед вызовом функции (в общем случае) они её компилируют в native код платформы, на которой запущена виртуальная машина. Поэтому последующие вызовы более дешевые.
С циклами та же история. Код тела цикла единажды компилируется и затем все N раз выполняется уже как native.
В Dragon Book про JIT ничего нету, вроде бы.
PS: в репозитории мозилы чёрт ногу сломит, и чтобы найти там код, ответственный за JIT, надо потратить не мало времени…

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered