LINUX.ORG.RU

Брюс Эккель признался в бессилии


0

0

I'm the first to admit that I'll probably never be able to create a correct threaded program in C++ or Java, despite years of study. It's just too hard.

Я первый признаЮсь, что не смогу написать корректную мультипоточную программу ни на C++, ни на Java, несмотря на годы, которые я провел, обучая тысячи людей этим языкам программирования. Это за пределами моих возможностей.

Что уж говорить об "обычных программистах на C++"?

Об этом и многом другом говорит Брюс Эккель, рассуждая о языках Python 2.9 и Python 3000.

>>> Подробности

anonymous

Проверено: anonymous_incognito ()

Ответ на: комментарий от anonymous

> Да он просто завидует великому Брюсу.

Ну величие брбса я по TiJ не оценил совершенно, "Lighter Java/Beyound Java" мне всегда казались более интересными книгами про Яву...

sv75 ★★★★★
()

"Это тот самый лузир-графоман, что не осилил многопоточность даже на жабе?" - так будут говорить последующие поколения. Антиреклама тоже реклама, ага, аж страшно представить что вырастет с таким подходом из современных пубертатиков.

Gharik
()
Ответ на: комментарий от vadiml

> Неужели я заблуждался, что нормальная голова важнее языка?

"Язык формирует способ нашего мышления и предопределяет, о чем мы можем думать."

К примеру, тот, чей способ мышления был сформирован жабой, может думать только о большом иксэмель.

anonymous
()
Ответ на: комментарий от sv75

Как бы то нибыло, куча гоблинов и долбоебов, а также немного толковых программистов выросли на этом мирровозрении! ЗЫ! Всех с праздником! Линуксу 16! (ЗЫ. Молодая половозрелая девушка, которую надо лишить девственности! l-) ;-)))))) )

anonymous
()
Ответ на: комментарий от anonymous

>>А причем тут Линукс?

>А линукс это вообще ядро. Так и че вообще ниче не постить?

Но новость совсем не по теме.

MEZON ★★★★★
()
Ответ на: комментарий от anonymous

> "Язык формирует способ нашего мышления и предопределяет, о чем мы можем думать."

> К примеру, тот, чей способ мышления был сформирован жабой, может думать только о большом иксэмель.

это ж какое у меня мышление, если мои первые программки были в машинных кодах для MK52? 8-|

vadiml ★★★★★
()

че жж делает в новостях? о_О
я не смогу написать рабочее ядро ос ни на С++, ни на яве.

zpp
()

Топикстартер дятел!

экзель прав, пи3к не нужен, направления нормальные задал, только он не гнидо

anonymous
()

> Я первый признаЮсь, что не смогу написать корректную мультипоточную программу ни на C++, ни на Java, несмотря на годы, которые я провел, обучая тысячи людей этим языкам программирования. Это за пределами моих возможностей.

Не можешь *рать - не мучай *опу. Кто такой этот Эккель? Может мне тоже в чём нибудь признаться? :)

DOKA
()
Ответ на: комментарий от vadiml

> Неужели я заблуждался, что нормальная голова важнее языка?

Не знал, что язык определяет мышление?

sv75 ★★★★★
()
Ответ на: комментарий от vadiml

> это ж какое у меня мышление, если мои первые программки были в машинных кодах для MK52? 8-|

Это по нужде было. Вот какой язык ты выбрал при наличии выбора в дальнейшем?

sv75 ★★★★★
()
Ответ на: комментарий от tailgunner

> Это Хоар, Дейкстра, Брукс? Или кто?

Хм, довольно точно определен круг претендентов ;-). Можно поинтересоваться, по какому принципу отбирали?

Это Дийкстра, "Наука программирования". :-)

eugine_kosenko ★★★
()

делюсь со всеми радостью, у мня только что заработала GlusterFS развёрнутая на 4-нодовом кластере после доработки напильником, не обманывают разрабы, правда производительность на гигабитном езернете пока что-то не блеск :(, надо пилить дальше, а теперь скажите мне на каком языке такие вещи пишутся (и треды и распределённость есть)? вот вам и ответ, какие языки рулят, а вы С++, Жава...

filin ★★
()
Ответ на: комментарий от tailgunner

> Это Хоар, Дейкстра, Брукс? Или кто?

Дейкстра

anonymous
()

"I'm the first to admit that I'll probably never be able to create a correct threaded program in C++ or Java".

Это типа приговор самому себе как программисту. Армия дворников ждёт новобранца!

Casus ★★★★★
()
Ответ на: комментарий от vadiml

> Неужели я заблуждался, что нормальная голова важнее языка?

То есть нет разницы, на чем писать: brainfuck или python?

balodja ★★★
()
Ответ на: комментарий от balodja

> То есть нет разницы, на чем писать: brainfuck или python?

Да. "И скачет не лошадь, а жокей" :)

sv75 ★★★★★
()
Ответ на: комментарий от Casus

> Это типа приговор самому себе как программисту. Армия дворников ждёт новобранца!

Ключевое слово "correct"

sv75 ★★★★★
()
Ответ на: комментарий от Displacer

2Displacer (*) (16.09.2007 22:52:07):

> Мне знаете, что интересно, что этот человек за свою жизнь сделал, кроме как написал кучу книжек о своём мировоззрении?

Льва Толстого тоже в топку. Нихрена кроме книжек о своём мировоззрении не сделал. Displacer намного продуктивнее в жизни своей ;-)

anonymous
()
Ответ на: комментарий от anonymous

> Льва Толстого тоже в топку.

Кстати говоря, да.

anonymous
()
Ответ на: комментарий от anonymous

Толстой как бы - профессиональный писатель, и ничего удивительного в том, что Толстой бы заявил, что ни одной программы не написал многопоточной, я бы, поверь, не увидел.

Displacer ★★
()

Ну чтож, теперь мы точно знаем, то, о чём давно догадывались. Уровень профессионализма питоноедов наконец обнародован.

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous

Льва Толстого не трожь! Почитай хороших рассказов, "Баня" например, и поймёшь, чего стОят всякие книжки о мировоззрении всяких там недоавторов перед лицом истинного гения!

bugmaker ★★★★☆
()
Ответ на: Топикстартер дятел! от anonymous

>экзель прав, пи3к не нужен, направления нормальные задал, только он не гнидо

Аргументы? У меня совершенно другое мнение на этот счет: Гвидо прав, py3k нужен ибо python2.x много теряет из-за груза совместимости.

Я уже две недели на py3.0a1 прогаю, отличная вещь. Сначала казалось что перевести проект под него нереально и без 2to3 ничего не сделать, а щас на py2.5 прогать не могу, 3.0 гораздо удобнее.

anonymous
()
Ответ на: комментарий от anonymous

Вот, кстати, Брюс пишет правильные вещи. Но это не значит что питон нельзя использовать из-за этих design fals, это значит что есть куда развиваться. Где вы видели идеальный язык? И я бы не сказал, что, скажем, "проблема" с self сильно мешает жить. Ну есть такая фича, что с ней делать сто раз написано(hint: pep-8).

Так же с GIL и тредами. Да, если бы GIL не было то было бы замечательно. Но это не значит что везде где можно пихать треды надо пихать треды. В большинстве, например, моих сетевых задач треды были переделаны в non-blocking работу с сокетами. Всё blocking было вынесено в отдельный процесс. Кроме того, треды увеличивают нагрузку на память, у каждого треда свой стек.

Конечно, можно сделать "stackless". Можно реализовать интерпретатор без GIL. Но вот смогут ли рядовые программисты этим воспользоваться? Не насажают ли они ошибок и race conditions? Не впендюрят ли своих блокировок? Из-за этих "но" треды не самая важная часть языка и ей особого внимания со стороны разработчиков не уделяется. Ну и основные принципы питона типа keep it simple итп не надо забывать.

anonymous
()
Ответ на: комментарий от anonymous

> Можно реализовать интерпретатор без GIL. Но вот смогут ли рядовые программисты этим воспользоваться? Не насажают ли они ошибок и race conditions? Не впендюрят ли своих блокировок? Из-за этих "но" треды не самая важная часть языка и ей особого внимания со стороны разработчиков не уделяется. Ну и основные принципы питона типа keep it simple итп не надо забывать.

Как раз Экель тут вот про это написал: From a programming standpoint, agents are still the best thing that I've seen. The language provides support to help the programmer create agents, and for the agents to automatically handle their own concurrency and defend their memory. There's no shared memory outside the agent, every change happens via an input queue, and each message is executed to completion rather than trying to execute multiple messages together.

Насколько я понял, это очень похоже на тасклеты в ерланге.

anonymous
()

1. Те кто не умеют делать сами - идут учить других.

2. Эккель - пеарастишка и плут. Продажи Thinking in Java упали, плюс полно конкурентов появилось. Вот он и валит на новые просторы.

По сему фтопку такое "мнение".

anonymousI
()

Быстренько проглядел статью. Эккуль просто рассуждает о том, что С++ и Жаба будут хуже работать на многоядерных процессорах и в этом роде.

Меня бы не удивило, что языки разрабатываемые за долго до широкого распространения многоядерных процессоров не сильно спешат в их область.

Да возможно что Python сейчас лучше в многопоточных программах... об чём флуд?..

Moin
()
Ответ на: комментарий от tailgunner

> (C)

> Это Хоар, Дейкстра, Брукс? Или кто?

Дейкстра)

Ur4inA
()
Ответ на: комментарий от bugmaker

> Льва Толстого не трожь! Почитай хороших рассказов, "Баня"

Что-то у Льва Толстого никакой Бани не было.

sv75 ★★★★★
()

и началась война... люди не сравнивайте трамвай с апельсином! (читай жаву с питоном). У этих языков разный класс задач. Каждый хорош по своему, у каждого есть недостатки... Программист знающий эти языки, никогда не скажет, что один из них говно. Думаю многи знают софтину eclipse, давайте скажем, что она говно и ее надо переписать на питоне :) глупо правда? Или давайте скажем гуглу чтобы он переписал гмыло на паскале...

anonymous
()
Ответ на: комментарий от anonymousI

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

anonymous
()
Ответ на: комментарий от anonymous

>Йоптыть. Скока многопоточных мегапрограммеров собралось. А вы в курсе, что тот же Дейкстра наколбасил многопоточную программу сортировки на три строчки. А через какое то время (достаточно большое) в ней нашли ошибку.

А исходник можно посмотреть? :)

anonymous
()
Ответ на: комментарий от eugine_kosenko

> по какому принципу отбирали?

По стилю высказывания и "последовательным процессам"... а главное - возрасту :D

> Дийкстра, "Наука программирования". :-)

Имеется в виду "Дисциплина программирования"? "Науку" написал Грис :)

tailgunner ★★★★★
()

>Я первый признаЮсь, что не смогу написать корректную мультипоточную программу ни на C++, ни на Java, несмотря на годы, которые я провел, обучая тысячи людей этим языкам программирования. Это за пределами моих возможностей.

Перевод не художественный, а просто неверный. Он не обучал годы, но изучал. To study - изучать, учить (что-либо) etc. Обучать - to teach, to instruct.

P.S. Всё же Дейкстра, а не Дийкстра.

myst
()

Человек правильно поднял проблему. Пока она есть, о ней будут писать. Но новая ли эта проблема? Алан Кокс ещё в 2001-м году писал:

"В сущности, есть только два оправдания использованию тредов(нитей) в программировании. 1) Слабая подготовка программиста или слаборазвитые средства обработки событий в языке программирования. 2) Проблемы в реализации отдельных компонентов ОС (а в posix/sus unix API таковые есть)

Использование Co-routines или _выбор более подходящего языка_ являются гораздо более эффективными решения проблемы обработки событий.

(Источник: http://marc.info/?l=linux-kernel&m=99254377501835&w=2)

А вот ещё крылатая фраза, взятая с домашней странички Larry McVoy: "A computer is a state machine. Threads are for people who can't program state machines."

annonymous ★★
()
Ответ на: комментарий от Legioner

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

Которые любят заниматься программазмом, изучая миллиарды никому не нужных API только потому, что им их продали с умным видом дяди из BEA. Индус3я Java EE -- такая же продажа воздуха, как политика российских чинуш. Мыльные пузыри, красивые слова, "крутость" и мажорство.

Long live languages for JVM, а язык Java очень мало где реально нужен.

anonymous
()
Ответ на: комментарий от anonymous

>> Йоптыть. Скока многопоточных мегапрограммеров собралось. А вы в курсе, что тот же Дейкстра наколбасил многопоточную программу сортировки на три строчки. А через какое то время (достаточно большое) в ней нашли ошибку.

> А исходник можно посмотреть? :)

Наверное где-нибудь можно. :) Я давным-давно ходил на семинар по паралельным вычислениям, так нам эту программу на доске рисовали.

anonymous
()
Ответ на: комментарий от Codewalker

> Сейчас посыпятся анонимусы, утверждающие, что Эккель - не шарит, а они - шарят и могут написать корректную мультипоточную программу, а также анонимусы с криками "жаба - отстой" (и это несмотря на то, что в новости написано "ни на C++, ни на Java").

Ну я конечно не анонимус, однако берусь утверждать что я написал таки несколько программ именно многопоточных, и я как-то могу объяснить как они работают. Кроме того кто хочет действительно поужасаться сложностям многопоточного программирования очень рекомендую OpenH323 и ekiga на её базе. Там есть много примеров того как не нужно делать многопоточные программы - может этот ваш учитель об этом?

Для реального и положительного эффекта от многопоточности достаточно следовать одну правилу: каждый поток занимается своим делом, а не так как это сделано в OpenH323 - каждый поток это логическое соединение. Если следовать правилу то естественным обрзом переходим к транзакциям и тем самым упрощаем проектирование, отладку и сопровождение.

Так что не жужжите и нежужжимы будете.

alx_me ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.