?

Log in

No account? Create an account

Previous Entry | Next Entry

ushastyi пишет:
…популярность и быстрый рост Джавы во многом обусловлена ее социальностью — легко научиться что-то программировать. В сравнении с внешне похожим, но куда более сложным С++, в умелых руках способным творить чудесные программы и системы.

Социальность не всегда значит хорошо. Если меня спрашивают, а такое порой случается, то в качестве языков для обучения студентов я всегда рекомендую именно асоциальные языки. Их сложность и строгость гарантируют, что человеку придется напрягать мозги и разбираться, а это безвозвратно, к счастью, не проходит. Впоследствии другие языки покажутся простыми.
Три раза дададада!!! Учеба, кстати, в отличие от работы (и научной, и инженерной), есть процесс индивидуальный, или, в этих терминах, асоциальный. Если вам предстоит обучаться вычислительной математике, учитесь программированию на функциональном, асоциальном языке. Второй язык уже может быть любым.

Tags:

Comments

pphantom
Dec. 17th, 2011 04:19 pm (UTC)
Это в предположении, что компилятор вообще не оптимизирует код, чего в реальной жизни сейчас уже почти не бывает.

Сейчас попробовал потестировать подобный пример на трех языках, у которых переменные описываются в "выделенных" блоках (Паскаль, Ада, Фортран) и для которых у меня под рукой есть компиляторы. Ада (GNAT) и Фортран (GFortran, SunF, Open64, IFC) сделали в точности то, что должно было получиться - области использования переменных были найдены и локализованы, лишние ресурсы не потребовались. Паскаль (FPC) не сделал этого только с полностью отключенной оптимизацией. Так что...

Процедура может модифицировать свои аргументы. Это ее главное отличие от функции, и в тех языках, где процедур нет, приходится использовать костыли для эмуляции этой возможности. Функциональные языки тут не аргумент - они иначе устроены.
thedeemon
Dec. 17th, 2011 04:43 pm (UTC)
А, это хорошо, что такая оптимизация есть.

Это где так сказано, что главное отличие процедуры в возможности модификации аргументов? В основном пишут, что главное отличие - возвращение результата, а изменяемые аргументы и у функции паскалевской могут быть. Аргумент у меня не сами ФЯ, а теория типов. Те языки просто к ней ближе.
pphantom
Dec. 17th, 2011 05:08 pm (UTC)
Именно. И читается такой код, если он правильно написан, лучше.

Допустим, что это сказал я :), хотя подобная точка зрения достаточно распространена. Изменяемые аргументы у функций появились сравнительно поздно, на правах "синтаксического сахара", хотя при их наличии функции действительно отличаются от процедур в основном наличием выделенного возвращаемого значения. Тем не менее "правила хорошего тона" рекомендуют не использовать изменяемые аргументы в функциях в языках, где есть отдельные языковые конструкции для процедур и функций.