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:41 pm (UTC)
слушай, а вот что это за вера, что языки имени Вирта хороши в учебных целях?

Ну что в том же Паскале есть такого, что мешает Ц?
кроме того факта, что Ц -гадость

Мне, кстати, если серьезно Objective-C кажется весьма годным именно с учебной точки зрения

Хотя, может быть, честный smalltalk будет педагогичнее и правильнее
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)
а что, кто-то говорил, что си хорош для обучения?

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 05:51 pm (UTC) - Expand
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 курса уж тем более справятся.

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 09:08 pm (UTC) - Expand
Monday, October 5th, 2009 08:17 pm (UTC)
почему бы и нет? у нас в качестве учебных задач были планировщики заданий, компиляторы, динамические загрузчики. не с самого начала обучения, конечно, но так и менеждер памяти никто сразу писать не предлагает
Monday, October 5th, 2009 06:36 pm (UTC)
а для изучения ООП лучше смотреть на джаву или C#. или на тот же питон, там объектность довели до абсурда логического завершения :)

знаешь, я взглянул на руби, так вот там как раз довели. :)
Monday, October 5th, 2009 04:06 pm (UTC)
виртовские языки более концептуальны.

Smalltalk тоже хорошо, но еще менее применимо ;(
Monday, October 5th, 2009 04:55 pm (UTC)
музыка херовая, но концептуальная

со смыванием в историю клана дельфистов смолтолк,типа долее применим, чем все виртовские языки вместе взятые

тем более, что учебная задача не требует практического применения
Monday, October 5th, 2009 04:58 pm (UTC)
ну тогда уж питон, его можно на практике применять.
хотя за блоки посредством отступов надо убивать :)
Monday, October 5th, 2009 05:09 pm (UTC)
см выше мой коммент про руби, питон этим же страдает, как я понимаю

впрочем, хуже перла все равно не придумаешь
Monday, October 5th, 2009 05:06 pm (UTC)
Что значит "херовая"? Нормальная музыка, годная. Если мы, коненчо не говорим сугубо о Pascal, и его развитии имени Borland.

Если практическое применение не нужно, то можно смело брать Oberon и начинать обучение. Против SmallTalk'а как такового в разрезе "обучнеие программированию без особых уклонов в практику" я ничгео не имею. Более того, если покричать, наверянка набегут люди которые его используют очень даже практически. Я вот даже навскидку один жж-ник знаю :)

Но если говорить про обучение, я предпочитаю, чтоб теория подкреплялась задачами из реальной жизни. По крайней мере, из моего опыта - так учить что-либо гораздо легче.
Monday, October 5th, 2009 05:11 pm (UTC)
если она нормальная, то какие аргументы кроме концептуальности?


я за чистый паскаль ни одного аргумента представить не могу, кроме, конечно "ведь не перл же, уже хорошо"
Monday, October 5th, 2009 05:12 pm (UTC)
хрен с ним, с паскалем, пусть будет модула или ада :)

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 05:15 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2009-10-05 05:18 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 05:21 pm (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 05:48 pm (UTC) - Expand
Monday, October 5th, 2009 05:22 pm (UTC)
я тоже за чистый паскаль ниче не могу сказать, но как-бы Оберону уже 21 год :)

И я уж не знаю, правда ли то, что пишут приверженцы Оберона про Juice vs Java, но я точно помню, что когда мы смотрели на Juice, эта технология выглядела приятнее чем Java.

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 05:25 pm (UTC) - Expand

(no subject)

[identity profile] bormotov.livejournal.com - 2009-10-05 05:30 pm (UTC) - Expand
Monday, October 5th, 2009 05:48 pm (UTC)
кстати, тот паскаль, который был распространен на территории ex-USSR - Turbo Pascal/Borland досточно сильно отличался от того, что было в других реализациях - например, массивы с переменной длиной, в качестве аргументов функций
Monday, October 5th, 2009 05:46 pm (UTC)
как показано в MIT, схема тоже хороша для обучения :-)
Monday, October 5th, 2009 05:52 pm (UTC)
И вообще, голоса в защиту функциональщины в этом треде подозрительно тихи
Monday, October 5th, 2009 05:55 pm (UTC)
какая такая функциональщина? ;-) для разных задач - разные подходы!
P.S. я просто посмотрел на то, как преподается SICP - как жаль, что я учился не в MIT ;-)

(no subject)

[identity profile] bormotov.livejournal.com - 2009-10-05 06:04 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 06:07 pm (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 07:04 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 07:49 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 07:53 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 07:57 pm (UTC) - Expand
Monday, October 5th, 2009 05:56 pm (UTC)
Ага, вот только отказались они от нее в пользу питона, к сожалению.

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 06:01 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 06:16 pm (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 06:26 pm (UTC) - Expand

(no subject)

[identity profile] dim-hj - 2009-10-14 12:54 pm (UTC) - Expand