Языки программирования? По барабану.
По мотивам срачей с ребе айседом на тему "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
-1) Выбор языка программирования очень важен и определяется задачей, ибо то, что у них на выходе имеет очень разные характеристики. Давайте напишите мне годный драйвер на джаваскрипте и эрланге, а webUI на дельфи.
-2) Если "все мыслимое и немыслимое уже придумано и сделано", значит ваша предметная область - говно и торф, или вы не способны придумать ничего лучше того, что уже придумано и сделано.
-3) Заниматься личными проектами имеет смысл теми, что развивают мозг, иначе он скоро превратится в тот же торф. Сделайте "хаскель, на котором можно писать низкоуровневые драйвера", и не станете целевой аудиторией телепрограмм "Аншлаг" и "Комеди Клаб".
no subject
Уровень же "хаскеля" для домашних проектов недостижим.
no subject
no subject
no subject
Если не брать игры.
Java или С для написания нативных библиотек под Java. Остальное - говно, как выясняется потом.
Хаскели-хуяскели с глиспами - если только для слоя бизнес-логики, которая потом булет обрабатываться тоже кой-нидь хернёй, написаной на Java. Но и тут часто лучше какая-нидь своя херня на XML.
no subject
Для видеокодеков лучше С++. Для компиляторов лучше функциональщина типа того же Хаскеля или Окамла. Для ойфонов c ойпадами Obj-C. И т.д.
no subject
Obj-C - это исторически сложившийся PL для ябельщины, ещё с первых мак-осей. Опять-таки, он более "объектно-ориентированно-образен", чем С++.
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
no subject
Это выбор фирмы, а не самый лучшый технически вариант.
Им просто лень было что-то новое писать.
no subject
no subject
обычный легаси-код
no subject
(no subject)
no subject
no subject
no subject
Всё постепенно переносится в web, а web - это на 90% либо Java либо web-сервисы или web-api с клиентом на JS под браузер.
no subject
no subject