Языки программирования? По барабану.
По мотивам срачей с ребе айседом на тему "LISP/Clojure vs Java vs C++ vs Ruby vs Haskell" запишу свои тезисы, чтобы не забыть:
0) Выбор языка программирования - по сараю. Код никто не пишет. 90% работы - это общение с клиентами, писание требований, документирование, объяснение клиентам, почему их требования не имеют смысла, где взять готовый продукт, делающий нужное, и прочая и прочая.
Ход мысли не программиста-фанатика, мыслящего категориями "как и на чем писать", а категориямии руководителя-менеджера "зачем писать, какие ресурсы использовать для этого, какая будет прибыль и какие дальнейшие прибыли или убытки это за собой потянет".
1) Язык программирования не должен мешать программированию и не отправлять стричь яка. Т.е. если мне для реализации проекта внезапно оказывается необходимым общаться лично с автором виндового рунтайма хаскеля - извините, в продакшен непригодно.
2) Основная проблема - это не собственно выполнение работы (по моему, если не лезть в реализацию совсем уж новых концепций программирования, типа "а теперь мы сделаем хаскель, на котором можно писать низкоуровневые драйвера", то все мыслимое и немыслимое уже придумано и сделано, достаточно разобраться, склеить и скомпилировать), а заставить себя взяться за эту работу. Если язык при этом лезет под ноги всяким тупизмом, т.е. в 2012 году ВНЕЗАПНО не работает "искаропки" - отправляется в утиль.
Есть только одно неприятное следствие вышеуказанного: если так думать, заниматься "личными" проектами становится крайне затруднительно. Прибыли от них нет, приобретенное умение программировать уже НЕ НУЖНО, сделать что-то действительно новое и полезное - 90% будет не код, а анализ рынка, реклама, общение с коллегами, клиентами, заказчиками, опен-сорсным комьюнити и прочая.
А писать в стол всякое уныние, коего готового 100500 вариантов - нет вообще никаких стимулов.
Последнее время эта тема напрягает, т.к. я привык постоянно заниматься какими-то "интересными проектами", но постепенно требования к ним в силу моего перфекционизма переросли порог "можно сделать в свободное время не напрягаясь".
0) Выбор языка программирования - по сараю. Код никто не пишет. 90% работы - это общение с клиентами, писание требований, документирование, объяснение клиентам, почему их требования не имеют смысла, где взять готовый продукт, делающий нужное, и прочая и прочая.
Ход мысли не программиста-фанатика, мыслящего категориями "как и на чем писать", а категориямии руководителя-менеджера "зачем писать, какие ресурсы использовать для этого, какая будет прибыль и какие дальнейшие прибыли или убытки это за собой потянет".
1) Язык программирования не должен мешать программированию и не отправлять стричь яка. Т.е. если мне для реализации проекта внезапно оказывается необходимым общаться лично с автором виндового рунтайма хаскеля - извините, в продакшен непригодно.
2) Основная проблема - это не собственно выполнение работы (по моему, если не лезть в реализацию совсем уж новых концепций программирования, типа "а теперь мы сделаем хаскель, на котором можно писать низкоуровневые драйвера", то все мыслимое и немыслимое уже придумано и сделано, достаточно разобраться, склеить и скомпилировать), а заставить себя взяться за эту работу. Если язык при этом лезет под ноги всяким тупизмом, т.е. в 2012 году ВНЕЗАПНО не работает "искаропки" - отправляется в утиль.
Есть только одно неприятное следствие вышеуказанного: если так думать, заниматься "личными" проектами становится крайне затруднительно. Прибыли от них нет, приобретенное умение программировать уже НЕ НУЖНО, сделать что-то действительно новое и полезное - 90% будет не код, а анализ рынка, реклама, общение с коллегами, клиентами, заказчиками, опен-сорсным комьюнити и прочая.
А писать в стол всякое уныние, коего готового 100500 вариантов - нет вообще никаких стимулов.
Последнее время эта тема напрягает, т.к. я привык постоянно заниматься какими-то "интересными проектами", но постепенно требования к ним в силу моего перфекционизма переросли порог "можно сделать в свободное время не напрягаясь".
no subject
Ждемс ссылки на компиляторы... да хоть того же С на сабже :)))
no subject
no subject
no subject
feldspar-compiler library and program: Compiler for the Feldspar language
flite library and programs: f-lite compiler, interpreter and libraries
gf library and program: Grammatical Framework
hcc program: A toy C compiler.
hgom program: An haskell port of the java version of gom
hs2bf program: Haskell to Brainfuck compiler
KiCS library and programs: A compiler from Curry to Haskell
lhc programs: LHC Haskell Compiler
optimusprime program: A supercompiler for f-lite
statechart program: Compiles Rhapsody statecharts to C.
supero program: A Supercompiler
tiger program: Tiger Compiler of Universiteit Utrecht
Это вы так шутите?
Или издеваетесь? :(
no subject
no subject
no subject
no subject
no subject
no subject
1. Compcert is a compiler that generates PowerPC, ARM and x86 assembly code from Compcert C, a large subset of the C programming language. The particularity of this compiler is that it is written mostly within the specification language of the Coq proof assistant, and its correctness --- the fact that the generated assembly code is semantically equivalent to its source program --- was entirely proved within the Coq proof assistant.
http://compcert.inria.fr/doc/
(из Coq получается код на окамле после выбрасывания доказательств)
2. http://haxe.org
Язык уровня C# (но с алгебраическими типами, паттерн-матчингом и выводом типов), транслирующийся в JavaScript, Flash (байткод), C++, NekoVM (байткод) и PHP. Компилятор написан на Окамле. Код для Flash генерит намного более эффективный, чем официальный компилятор ActionScript'a. И делает это намного быстрее, чем тот ActionScript'овский компилятор, написанный на джаве.
no subject
Это пример получше, чем то что мне дали выше.
с http://hackage.haskell.org/packages/archive/pkg-list.html#cat:compiler
:)))))
Compiler
feldspar-compiler library and program: Compiler for the Feldspar language
flite library and programs: f-lite compiler, interpreter and libraries
gf library and program: Grammatical Framework
hcc program: A toy C compiler.
hgom program: An haskell port of the java version of gom
hs2bf program: Haskell to Brainfuck compiler
KiCS library and programs: A compiler from Curry to Haskell
lhc programs: LHC Haskell Compiler
optimusprime program: A supercompiler for f-lite
statechart program: Compiles Rhapsody statecharts to C.
supero program: A Supercompiler
tiger program: Tiger Compiler of Universiteit Utrecht