November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Monday, October 5th, 2009 04:00 pm

откуда берётся столько быдлокодеров на PHP. А вот откуда.

Начав с языка, провоцирующего на написание поганого кода, дисциплине программирования уже не научиться.

Правильно кто-то написал в комментах: слишком низкий порог вхождения..

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

Monday, October 5th, 2009 03:47 pm (UTC)
это не вера, это результат практического наблюдения. нас в институте им всем учили понемножку. причём я к тому времени уже неплохо знал си, не считая несколько устаревших к тому времени фортранов и PL/1. мне лично паскаль не нравится, потому что многобукв надо писать.

но по сравнению с си у них есть модульность и явное выделение в модулях интерфейса и реализации, а также более строгая типизация средствами компилятора.

про objective c ничего вразумительного сказать не могу, я его слишком мало знаю. а для изучения ООП лучше смотреть на джаву или C#. или на тот же питон, там объектность довели до абсурда логического завершения :)
Monday, October 5th, 2009 05:08 pm (UTC)
Отделению интерфейса от реализации в Ц мешает только лень
Адской гадостью в Ц должен считаться мемори менеджмент

Шарп, ява и Ц++ с точки зрения "изучения ооп" не отличаются не фига, а смолтолк (и объектный кусок obj-c, да руби с питонами) лежат в перпендикуляной плоскости
Именно с учебной точки зрения концепция "сообщений, а не методов" и динамическая типизация вместо виртуализации мне кажутся более удобными и системными

руби, кстати, был бы всем хорош, если бы не слишком богатый синтаксис
Monday, October 5th, 2009 05:11 pm (UTC)
отделению интерфейса от реализации в си мешает отсутствие средств в языке

руби я, к сожалению, тоже пракически не знаю
Monday, October 5th, 2009 05:33 pm (UTC)
Адской гадостью в Ц должен считаться мемори менеджмент.

Он не может быть таковой, потому как его там попросту нет. Не нравятся malloc()/free() – пишите свою реализацию (как сделано в Doom/Quake) или юзайте сторонние аллокаторы (коих тоже немало).

Bottom line: Си это портабельный ассемблер. Не надо требовать от него большего, чем подсчет смещений в структурах и примивный access control ("static" keyword, et cetera).
Monday, October 5th, 2009 05:38 pm (UTC)
ну, никто и не спорит

речь же только о том, что Си не очень хорош для обучения (точно не хорош, как единственный язык)

кстати, у паскакаля в этом месте не лучше, но на это никто особо внимания не обращает почему-то

я бы только отметил, что писание собственных аллокаторов вообще ни как не снимает проблемы того, что нет ММ, а есть лишь закат солнца вручную
Monday, October 5th, 2009 05:39 pm (UTC)
а что, кто-то говорил, что си хорош для обучения?
Monday, October 5th, 2009 05:51 pm (UTC)
Я как бы говорил подразумевал, но при соблюдении определенных условий, а именно: учить с оглядкой на underlying реализацию (т.е. фактически учить портабельному ассемблеру). Конечно, получается, что это уже не обучение языку высокого уровня, но, по крайней мере, все честно.
Monday, October 5th, 2009 05:59 pm (UTC)
Кстати, у паскакаля в этом месте не лучше, но на это никто особо внимания не обращает почему-то.

Видимо потому, что у Паскаля других проблем хватает. :-)
Monday, October 5th, 2009 06:37 pm (UTC)
Не нравятся malloc()/free() – пишите свою реализацию

Вы это студенту предлагаете сделать?
Monday, October 5th, 2009 06:56 pm (UTC)
Мы, кажется, как раз обсуждаем (среди прочего) проблемы обучения программирониваю на Сях? :-)

Студенту я предложу либо пойти учить лисп/схему/хаскель (глядишь, и серьезной математикой увлечется), либо аккуратно пользоваться тем, что есть (функциями стандартной библиотеки).

Пару лет назад я преподавал школьникам (7-9 кл.) ассемблер, в качестве проекта писали промитивную ОС (правильнее будет сказать task switcher), так вот hunk-based linear memory allocator из дума они раскусили-реализовали очень быстро. Студенты 1-2 курса уж тем более справятся.
Monday, October 5th, 2009 09:08 pm (UTC)
есть некий парадокс в том, что Вы говорите

это не обвинение, это констатация (проблемы, которая мне как бывшему студенту, непрограммисту, но организатору спроса на программистов непонятна)
Monday, October 5th, 2009 08:17 pm (UTC)
почему бы и нет? у нас в качестве учебных задач были планировщики заданий, компиляторы, динамические загрузчики. не с самого начала обучения, конечно, но так и менеждер памяти никто сразу писать не предлагает
Monday, October 5th, 2009 06:36 pm (UTC)
а для изучения ООП лучше смотреть на джаву или C#. или на тот же питон, там объектность довели до абсурда логического завершения :)

знаешь, я взглянул на руби, так вот там как раз довели. :)