Oberon???????????????????????????????????
От: LaptevVV Россия  
Дата: 20.10.04 12:15
Оценка:
Почитал я тут защитников Оберона, и задумался. Надо первачков учить. Раньше мы, естественно, первый семестр учили на Турбо-паскале. А потом переходим на С и С++ — и понеслась. Турбо-паскаль нужен нам был, что на чемпионате мира меньше проблем было. А теперь турбо=паскаль умер, и надо что-то выбирать. С++ как первый язык давать не хочу — поймут отнюдь не все. Студенты есть из сел, поэтому сначала их надо в проблематику написания программ ввести, не касаясь сильно компьютерных особенностей, особенно указателей. Вот на чем? На обероне?
Интересует любая информация о трансляторах, IDE, справочные материалы, адреса в инете — в общем все, что мы проанализируем и потом примем решение.
Кстати, какие альтернативы оберону есть, кто-нить представляет?
На западе, насколько знаю — обучают сначала функциональному языку типа Haskel.
Ы??????????????????????????????????????????


31.10.04 14:45: Перенесено модератором из 'Мусор' — AndrewVK
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Oberon???????????????????????????????????
От: prVovik Россия  
Дата: 20.10.04 12:23
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Кстати, какие альтернативы оберону есть, кто-нить представляет?

Java? На ней олимпиады проводятся?
... << RSDN@Home 1.1.4 @@subversion >>
лэт ми спик фром май харт
Re[2]: Oberon???????????????????????????????????
От: LaptevVV Россия  
Дата: 20.10.04 12:26
Оценка:
Здравствуйте, prVovik, Вы писали:

V>Здравствуйте, LaptevVV, Вы писали:


LVV>>Кстати, какие альтернативы оберону есть, кто-нить представляет?

V>Java? На ней олимпиады проводятся?
Нет, не проводятся.
Это конечно мысль. Или еще можно С# попробовать. Но хотелось бы не Сишного синтаксиса — для алтернативы.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Oberon???????????????????????????????????
От: Dervish Россия http://www.dervish.ru
Дата: 20.10.04 12:33
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Но хотелось бы не Сишного синтаксиса — для алтернативы.


Пролог?
... << RSDN@Home 1.1.4 beta 3 rev. 194>>
Re: Oberon???????????????????????????????????
От: Курилка Россия http://kirya.narod.ru/
Дата: 20.10.04 12:33
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>На западе, насколько знаю — обучают сначала функциональному языку типа Haskel.

LVV>Ы??????????????????????????????????????????

Имхо не haskell, а ocaml во франции преподают...
Re[2]: Oberon???????????????????????????????????
От: Kluev  
Дата: 20.10.04 12:33
Оценка: +4
V>Здравствуйте, LaptevVV, Вы писали:

На питоне надо новичков учить. Прост как три копейки и в командном режиме может работать как калькулятор.
Более того в джаве только классы, а в питоне можно и с функций начать.
Re[4]: Oberon???????????????????????????????????
От: LaptevVV Россия  
Дата: 20.10.04 12:45
Оценка:
Здравствуйте, Dervish, Вы писали:

D>Здравствуйте, LaptevVV, Вы писали:


LVV>>Но хотелось бы не Сишного синтаксиса — для алтернативы.


D>Пролог?

На первом курсе?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Oberon???????????????????????????????????
От: LaptevVV Россия  
Дата: 20.10.04 12:46
Оценка:
Здравствуйте, Kluev, Вы писали:

V>>Здравствуйте, LaptevVV, Вы писали:


K>На питоне надо новичков учить. Прост как три копейки и в командном режиме может работать как калькулятор.

K>Более того в джаве только классы, а в питоне можно и с функций начать.
Спасибо за идею. Литературу не подскажете, чтоб на любуду не отвлекаться.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Oberon???????????????????????????????????
От: Dervish Россия http://www.dervish.ru
Дата: 20.10.04 12:48
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Dervish, Вы писали:


D>>Здравствуйте, LaptevVV, Вы писали:


LVV>>>Но хотелось бы не Сишного синтаксиса — для алтернативы.


D>>Пролог?

LVV>На первом курсе?

Это была шутка.
... << RSDN@Home 1.1.4 beta 3 rev. 194>>
Re[4]: Oberon???????????????????????????????????
От: Kluev  
Дата: 20.10.04 12:49
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Kluev, Вы писали:


V>>>Здравствуйте, LaptevVV, Вы писали:


K>>На питоне надо новичков учить. Прост как три копейки и в командном режиме может работать как калькулятор.

K>>Более того в джаве только классы, а в питоне можно и с функций начать.
LVV>Спасибо за идею. Литературу не подскажете, чтоб на любуду не отвлекаться.

Начните с http://python.ru
Re[5]: Oberon???????????????????????????????????
От: LaptevVV Россия  
Дата: 20.10.04 12:55
Оценка:
Здравствуйте, Kluev, Вы писали:

K>Здравствуйте, LaptevVV, Вы писали:


LVV>>Здравствуйте, Kluev, Вы писали:


V>>>>Здравствуйте, LaptevVV, Вы писали:


K>>>На питоне надо новичков учить. Прост как три копейки и в командном режиме может работать как калькулятор.

K>>>Более того в джаве только классы, а в питоне можно и с функций начать.
LVV>>Спасибо за идею. Литературу не подскажете, чтоб на любуду не отвлекаться.

K>Начните с http://python.ru

Спасибо! Классный сайт — как раз для начала!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Oberon???????????????????????????????????
От: Kluev  
Дата: 20.10.04 12:55
Оценка: 21 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Kluev, Вы писали:


V>>>Здравствуйте, LaptevVV, Вы писали:


K>>На питоне надо новичков учить. Прост как три копейки и в командном режиме может работать как калькулятор.

K>>Более того в джаве только классы, а в питоне можно и с функций начать.
LVV>Спасибо за идею. Литературу не подскажете, чтоб на любуду не отвлекаться.

В качестве примера кодец на питоне:

>>> for i in range(10) : print i

0
1
2
3
4
5
6
7
8
9
>>>


Выполняется прямо в командной строке без компиляции, написания функции и т.п. ИМХО если учить то лучше питона не найти
Re: Oberon???????????????????????????????????
От: FreshMeat Россия http://www.rsdn.org
Дата: 20.10.04 13:06
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>На западе, насколько знаю — обучают сначала функциональному языку типа Haskel.

LVV>Ы?

Можно попробовать здесь посмотреть.
Если конкретней, то Structure-and-Interpretation-of-Computer-Programs (похоже оно?) — на этой страничке ссылки на лекции, примеры экзаменов, календарь, книги по курсу и т.д.
Хорошо там, где мы есть! :)
Re: BlackBox
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 20.10.04 13:54
Оценка: 21 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>Почитал я тут защитников Оберона, и задумался. Надо первачков учить.


Слава богу!

Смотрите проект Информатика 21

http://www.inr.ac.ru/~info21/

Цели проекта

Помочь преподавателям вузов и школьным учителям информатики поднять обучение программированию до уровня сформировавшейся к началу XXI века стандартной парадигмы программирования, представленной системами Оберон/Компонентный Паскаль, Java и C#.

Предоставить программистам (прежде всего "непрофессионалам": физикам, математикам, химикам, экономистам, лингвистам ...) ультра-современные — простые, эффективные и мощные — средства программирования для создания программ от процедур в 15 строк до комплексов с современными графическими интерфейсами.

Помочь оформиться растущему стихийному интересу к технологиям Оберона в преподавательских, научных и профессиональных программистских кругах с целью их внедрения в систему образования в России и на пост-советском пространстве, с тем чтобы способствовать достижению стратегической цели — созданию эффективной системы преподавания современного программирования, дополняющей и развивающей существующую уникальную систему преподавания математики


Самая академически выверенная версия Оберона на сегодняшний день есть Component Pascal. Реализация среды разработки под Windows от Oberon Microsystems среда называется BlackBox. Она совсем недавно стала бесплатной. Скачивать отсюда:

http://www.oberon.ch/blackbox.html

У info21 есть русификатор BlackBox-а, так что можно программы писать прямо на русском языке.

Для более-менее начала серьезного знакомства гляньте сюда

http://cern.ch/oberon.day

В разделе Presentations особо гляньте на доклад:

C. Pfister (Oberon microsystems)
BlackBox: An Industrial-Strength Oberon Implementation
http://cern.ch/oberon.day/talks/pfister.pdf

Там хвастаются как на этом самом BlackBox написано ПО для ЭЛЕКТРОСТАНЦИИ!!!


Форумы где можно пообщаться:

http://progz.ru/forum/viewforum.php?f=49&amp;sid=1b298709ca8f03f474379a8a4b76f943
http://www.delphikingdom.com/asp/talktopic.asp?ID=285
http://qnxclub.net/modules.php?name=Forums&amp;file=viewforum&amp;f=14&amp;sid=2b25169c0d44448ddeb4180d614e9c7d
Re[2]: BlackBox
От: LaptevVV Россия  
Дата: 20.10.04 13:55
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

LVV>>Почитал я тут защитников Оберона, и задумался. Надо первачков учить.


СГ>Слава богу!


СГ>Смотрите проект Информатика 21
Спасибо! Информация исчерпывающая!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.10.04 15:06
Оценка: 4 (2) +5 -2
Здравствуйте, LaptevVV, Вы писали:

Оберон — это мертвях. Учить ему будущих программистов все равно что учить латыни будущих переводчиков. Неужели нехватает живых языков? Чем та же Ява или Шарп хуже?
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.10.04 15:06
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>Это конечно мысль. Или еще можно С# попробовать. Но хотелось бы не Сишного синтаксиса — для алтернативы.


ВБ.НЭТ потянет? Сточки зрения простоты синтакиса и отсутствия сишных скобок самое оно. Только логических операций лучше на нем не давать. Они в нем такие же кривые как в Паскле (бен разделения на бинарные илогические).
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Oberon???????????????????????????????????
От: LaptevVV Россия  
Дата: 20.10.04 16:08
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, LaptevVV, Вы писали:


VD>Оберон — это мертвях. Учить ему будущих программистов все равно что учить латыни будущих переводчиков. Неужели нехватает живых языков? Чем та же Ява или Шарп хуже?

Хочется альтернативный синтаксис показать.
Хотя я и о яве, и о дотнете с до диезом думал.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Oberon???????????????????????????????????
От: FR  
Дата: 20.10.04 16:48
Оценка:
Здравствуйте, Kluev, Вы писали:

V>>Здравствуйте, LaptevVV, Вы писали:


K>На питоне надо новичков учить. Прост как три копейки и в командном режиме может работать как калькулятор.

K>Более того в джаве только классы, а в питоне можно и с функций начать.

Я тоже думаю что питон очень хороший вариант для обучения.
Тем более позволяет продемонстрировать все наиболее распрастраненые подходы к программированию и процедурное и функциональное и ООП и обобщенное программирование.
У него только один недостаток динамическая типизация.
... << RSDN@Home 1.1.3 stable >>
Re[3]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.10.04 17:57
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Хочется альтернативный синтаксис показать.


1. Что в нем альтернативного? Та же императивщина, толко вместо скобок бегин с эндом, а вместо "=" используется ":=". Если уж показывать, то наврено лучше действительно какие-нибудь Хаскели и Питоны.
2. Показать и научить две большие разницы. Показывать можно сколько влезет хоть десять языков. А на учение время нужно.

LVV>Хотя я и о яве, и о дотнете с до диезом думал.


Я бы на этом и остановился.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Oberon???????????????????????????????????
От: WolfHound  
Дата: 20.10.04 18:00
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Хочется альтернативный синтаксис показать.

Зачем?
... << RSDN@Home 1.1.4 rev. 185 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: Oberon???????????????????????????????????
От: prVovik Россия  
Дата: 20.10.04 18:18
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я бы на этом и остановился.

Вот вот. Тем более, что существует ненулевая вероятность, что знание этих платформ в реальной жизни может принести кучку бутербродов с маслом. То есть двух зайцев одним залпом: и алгоритмам учатся и прикладные технологии изучают.
... << RSDN@Home 1.1.4 @@subversion >>
лэт ми спик фром май харт
Re[5]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.10.04 22:39
Оценка:
Здравствуйте, Kluev, Вы писали:

K>Выполняется прямо в командной строке без компиляции, написания функции и т.п. ИМХО если учить то лучше питона не найти


Разницы с тем же шарпом никакой. Что до компиляции, то нажать на F5 или написать "csc filename.cs" вряд ли окажется проблемой.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.10.04 22:39
Оценка:
Здравствуйте, FR, Вы писали:

FR>Я тоже думаю что питон очень хороший вариант для обучения.

FR>Тем более позволяет продемонстрировать все наиболее распрастраненые подходы к программированию и процедурное и функциональное и ООП и обобщенное программирование.
FR>У него только один недостаток динамическая типизация.

Я вот тут скачал книжку по Питону. Поглядел. Есть конечно в Питоне интересные решения. Но рельных приемуществ пред тем же шарпом нет. А вот недостатки вроде отсуствия типизации есть. Нормальный программист должен понимать что такое типы и статическая типизация.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Oberon???????????????????????????????????
От: FR  
Дата: 21.10.04 06:30
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, FR, Вы писали:


FR>>Я тоже думаю что питон очень хороший вариант для обучения.

FR>>Тем более позволяет продемонстрировать все наиболее распрастраненые подходы к программированию и процедурное и функциональное и ООП и обобщенное программирование.
FR>>У него только один недостаток динамическая типизация.

VD>Я вот тут скачал книжку по Питону. Поглядел. Есть конечно в Питоне интересные решения. Но рельных приемуществ пред тем же шарпом нет. А вот недостатки вроде отсуствия типизации есть. Нормальный программист должен понимать что такое типы и статическая типизация.


У питона куча реальных преимуществ перед Шарпом, так же как и у Шарпа перед Питоном.
А главное же преимущество более высокий уровень языка. (Да кое-что я тебе в теме C++ и Net продемонстрировал, но ты куда-то пропал оттуда)
... << RSDN@Home 1.1.3 stable >>
Re[6]: Oberon???????????????????????????????????
От: FR  
Дата: 21.10.04 06:40
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Kluev, Вы писали:


K>>Выполняется прямо в командной строке без компиляции, написания функции и т.п. ИМХО если учить то лучше питона не найти


VD>Разницы с тем же шарпом никакой. Что до компиляции, то нажать на F5 или написать "csc filename.cs" вряд ли окажется проблемой.


Как раз для обучения разница большая, можно начать с однострочных программ, с обычного процедурного программирования не забивая голову не нужными в начале обучения class и public static void Main()
... << RSDN@Home 1.1.3 stable >>
Re[4]: арифметические, логические, бинарные
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 21.10.04 07:12
Оценка: 8 (2) :)
Здравствуйте, VladD2, Вы писали:

VD>...Только логических операций лучше на нем не давать. Они в нем такие же кривые как в Паскле (бен разделения на бинарные илогические).


Ну Вы опять говорите о Паскале имея в виду тот древний, который прямой потомок Алгола. В современном (от 1994 года) Component Pascal (тот который есть модифицированный Oberon-2) бинарных операций с числами нет вообще. Число — это математическая абстракция, программист не должен знать как она реализована на конкретной машине. Это делает язык переносимым между любыми архитектурами компьютеров. Для бинарных операций существует специальный тип данных — SET (множество). Множество — тоже математическая абстракция, и тут снова программист не должен знать как она реализована на конкретной машине. Для SET-ов реализованы все характерные для множеств операции (объединение, разность, пересечение, симметричная разность).

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

И так, в современном Паскале (1) арифметические, (2) логические и (3) бинарные операции можно осуществлять только над соответствующими типами данных: (1) числовыми, (2) буллевым, (3) множествами. То есть, все безупречно purify! Для школьников и студентов — то что доктор прописал!


P. S.
Ну, чтобы уж совсем не отрываться от действительности, и иметь возможность использовать обероны в системном программировании, так уж и быть (хотя с точки зрения математики это и бессмысленно), предусмотрены инструкции конвертации чисел во множества, и множеств в числа:
set     := BITS(integer);
integer := ORD(set);

при этом, разумеется, учитываются архитектурные особенности представления чисел на используемом компьютере, так что программа остается переносимой.
Re[5]: арифметические, логические, бинарные
От: eugals Россия  
Дата: 21.10.04 07:28
Оценка: 3 (1) :)))
Здравствуйте, Сергей Губанов, Вы писали:


СГ>Ну, чтобы уж совсем не отрываться от действительности
Оговорка по Фрейду
... << RSDN@Home 1.1.4 beta 2 >>
Re[2]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 21.10.04 07:33
Оценка: 5 (1) +1 :)
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, LaptevVV, Вы писали:


VD>Оберон — это мертвях. Учить ему будущих программистов все равно что учить латыни будущих переводчиков. Неужели нехватает живых языков? Чем та же Ява или Шарп хуже?


Оберон не мертвяк, то что Вы о нем ничего не знаете говорит о Вас и только о Вас.

Ява и Шарп хуже Оберона тем, что Оберон проще, чище и меньше и в то же время он полный, в смысле, достаточный современный объектно ориентированный модульный императивный язык общего назначения со строгой статической типизацией и встроенными механизмами безопасности (проверка индексов, правильное приведение типов, сборка мусора).

О превосходстве оберонов над Явой на ее родном поле боя — в интернете, можно почитать там:
http://www.uni-vologda.ac.ru/oberon/

Juice-технология

Летом 1996 года профессором Калифорнийского университета в Ирвине, учеником Н.Вирта Михаэлем Францем и его аспирантом Томасом Кистлером была представлена технология распространения исполнимого кода в Интернет, названная авторами Juice (по-русски — сок). Juice основан на использовании Оберона и влючает с одной стороны инструментальную компоненту для Оберон-системы Oberon System 3, обеспечивающую компиляцию написанных на Обероне модулей в платформно-независимое представление. Второй частью Juice является дополнение (plug-in) к Интернет-браузерам, обеспечивающее компиляцию получаемого Juice-кода "на лету" в родной код, его загрузку и исполнение.

Juice превосходит Java-технологию во всем кроме величины затрат на рекламу:

1) Основан на более простом и совершенном языке
2) Обеспечивает существенно большую скорость исполнения аплетов
3) Код Juice-аплета компактнее байт-кода Java

Re[5]: Oberon???????????????????????????????????
От: Kluev  
Дата: 21.10.04 07:35
Оценка: +3
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, FR, Вы писали:


FR>>Я тоже думаю что питон очень хороший вариант для обучения.

FR>>Тем более позволяет продемонстрировать все наиболее распрастраненые подходы к программированию и процедурное и функциональное и ООП и обобщенное программирование.
FR>>У него только один недостаток динамическая типизация.

VD>Я вот тут скачал книжку по Питону. Поглядел. Есть конечно в Питоне интересные решения. Но рельных приемуществ пред тем же шарпом нет. А вот недостатки вроде отсуствия типизации есть. Нормальный программист должен понимать что такое типы и статическая типизация.


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

# начали с калкулятора
>>> 2+2
4

# перешли к функции
>>> def sum(a,b) : return a+b

# заюзали функцию
>>> sum(2,2)
4

# теперь к классу:
>>> class Summator:
    a = 0
    b = 0
    def sum(self):
        return self.a + self.b

# сразу заюзали класс:    
>>> s = Summator()
>>> s.a = 1
>>> s.b = 2
>>> s.sum()
3
>>>
Re[3]: Oberon???????????????????????????????????
От: bkat  
Дата: 21.10.04 08:08
Оценка:
С точки зрения возможности найти работу Оберон — мервяк.
Нет, в универе о нем конечно же стоит рассказать на спецкурсах,
но использовать его в качестве базового языка программирования
было бы пожалуй нечестно по отношению к студентам.

В самой Швейцарии, откуда вроде пошел Оберон, этот язык не очень-то популярен
в учебных заведениях. Возмем к примеру всемирно известный ETH http://www.eth.ch
Это там, где Вирт работал. Так что это колыбель Оберона.
Дальше смотрим учебные программы http://se.inf.ethz.ch/teaching/index.html
и что мы там видим? Oberon там конечно иногда проскакивает, но очень и очень редко.
Новички, как я понял, начинают с Eiffel
Возможно я плохо искал...
Re[4]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 21.10.04 08:23
Оценка:
Здравствуйте, bkat, Вы писали:

B>этот язык не очень-то популярен


Именно об этом Вирт и рассказывает в своем докладе:

Преподавание информатики: потерянная дорога
Приветствие на открытии Международной конференции по преподаванию информатики ITiCSE
г. Аархус (Дания), 24 июня 2002 г.

http://www.inr.ac.ru/~info21/greetings/wirth_doklad_rus.htm
Re[5]: Oberon???????????????????????????????????
От: bkat  
Дата: 21.10.04 08:34
Оценка: 1 (1) +5
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, bkat, Вы писали:


B>>этот язык не очень-то популярен


СГ>Именно об этом Вирт и рассказывает в своем докладе:

СГ>

СГ>Преподавание информатики: потерянная дорога
СГ>Приветствие на открытии Международной конференции по преподаванию информатики ITiCSE
СГ>г. Аархус (Дания), 24 июня 2002 г.

СГ>http://www.inr.ac.ru/~info21/greetings/wirth_doklad_rus.htm

Да, я это читал. Что это меняет?
Повторюсь, студентам об Обероне (и не только) стоит рассказать.
Но будет жестоко по отношению к ним делать упор именно на Оберон.
В самом EHT, как я понял, Оберон позиционируется как исследовательский язык.
И это нормально. Но это не язык индустриального программирования.
Я конечно понимаю желание изменить мировые тенеденции.
Но студенты то тут причем?
Прагматичные швейцарцы вот учат Java, С++, C# и еще многое по мелочам...

В конце концов мы же все прекрасно понимаем, что язык — это дело десятое.
Реальные проблемы лежат в совсем иной плоскости...
Re[3]: Oberon???????????????????????????????????
От: Obel  
Дата: 21.10.04 11:24
Оценка: -3
СГ>1) Основан на более простом и совершенном языке
Который сокращает время разработки? Васик еще проще и совершеннее.
СГ>2) Обеспечивает существенно большую скорость исполнения аплетов
Это не является приоритетной задаче для апплетов.
СГ>3) Код Juice-аплета компактнее байт-кода Java
Это не так важно в современном интернете.

СГ>компиляцию получаемого Juice-кода "на лету" в родной код


А вот одним из приоритетных направлений является безопасность. Скомпилировать и запустить в браузере
что-то из инета? В родной код???
Re: Oberon???????????????????????????????????
От: BlackBox Россия ---
Дата: 21.10.04 11:47
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>На западе, насколько знаю — обучают сначала функциональному языку типа Haskel.



Я сейчас учусь на третьем курсе и у нас начали преподавать ФП. На практических занятиях используем haskel — всем очень нравится
Re[7]: Oberon???????????????????????????????????
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.10.04 12:55
Оценка:
Здравствуйте, FR, Вы писали:

FR>Как раз для обучения разница большая, можно начать с однострочных программ, с обычного процедурного программирования не забивая голову не нужными в начале обучения class и public static void Main()


SnippetCompiler
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
AVK Blog
Re[8]: Oberon???????????????????????????????????
От: FR  
Дата: 21.10.04 13:05
Оценка:
Здравствуйте, AndrewVK, Вы писали:

FR>>Как раз для обучения разница большая, можно начать с однострочных программ, с обычного процедурного программирования не забивая голову не нужными в начале обучения class и public static void Main()


AVK>SnippetCompiler


#$%^&*^*((*&&((?
... << RSDN@Home 1.1.3 stable >>
Re[9]: Oberon???????????????????????????????????
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.10.04 13:16
Оценка: 25 (2)
Здравствуйте, FR, Вы писали:

FR>#$%^&*^*((*&&((?


Тулзень есть такая, которая позволяет просто выполнять код на шарпе. http://www.sliver.com/dotnet/SnippetCompiler/
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
AVK Blog
Re[4]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 21.10.04 13:25
Оценка: -3
Здравствуйте, Obel, Вы писали:

СГ>>1) Основан на более простом и совершенном языке

O>Который сокращает время разработки? Васик еще проще и совершеннее.

Ну, вот, еще один "спец" нашелся. Утверждает что Васик проще и совершеннее Оберона.

СГ>>2) Обеспечивает существенно большую скорость исполнения аплетов

O>Это не является приоритетной задаче для апплетов.

СГ>>3) Код Juice-аплета компактнее байт-кода Java

O>Это не так важно в современном интернете.

А Вы случаем не на компанию по производству компьютеров и коммуникаций работаете? Они очень заинтересованы в том чтобы людям надо было как можно более мощное и быстрое оборудование.


СГ>>компиляцию получаемого Juice-кода "на лету" в родной код


O>А вот одним из приоритетных направлений является безопасность. Скомпилировать и запустить в браузере

O>что-то из инета? В родной код???

Именно в родной код. Безопасность встроена в сам язык. В оберонистой программе никогда не бывает переполнения буфера (range index check). И Вам никогда не удасться что-то читать или писать по неправильному адресу, просто потому что в языке нет такого понятия как адрес, адресная арифметика, и самого адресного пространства как такового.
Re[10]: Oberon???????????????????????????????????
От: FR  
Дата: 21.10.04 13:32
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, FR, Вы писали:


FR>>#$%^&*^*((*&&((?


AVK>Тулзень есть такая, которая позволяет просто выполнять код на шарпе. http://www.sliver.com/dotnet/SnippetCompiler/


Да я уже посмотрел
По сравнению с интерпретатором это костыли. Вообще нормальный редактор кода например SciTE позволяет тоже самое для кучи языков включая и питон и C++ и C#
... << RSDN@Home 1.1.3 stable >>
Re[5]: Oberon???????????????????????????????????
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.10.04 13:39
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Именно в родной код. Безопасность встроена в сам язык. В оберонистой программе никогда не бывает переполнения буфера (range index check).


В джаве тоже.

СГ>И Вам никогда не удасться что-то читать или писать по неправильному адресу, просто потому что в языке нет такого понятия как адрес, адресная арифметика, и самого адресного пространства как такового.


В джаве тоже.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
AVK Blog
Re[3]: Oberon???????????????????????????????????
От: WFrag США  
Дата: 21.10.04 13:44
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Ява и Шарп хуже Оберона тем, что Оберон проще, чище и меньше и в то же время он полный, в смысле, достаточный современный

СГ>объектно ориентированный модульный императивный язык общего назначения со строгой статической типизацией и встроенными
СГ>механизмами безопасности (проверка индексов, правильное приведение типов, сборка мусора).

Чище чем Java в каком плане?

Всякие проверки и сборка мусора есть и в Java. Или ты о чем?

Рефлекшн, кстати, в нем есть?

СГ>О превосходстве оберонов над Явой на ее родном поле боя — в интернете, можно почитать там:

СГ>http://www.uni-vologda.ac.ru/oberon/
СГ>[q]
СГ>Juice-технология

По-моему, родное поле Java — middleware. Апплеты мне попадаются существенно реже, чем, например, stand-alone приложения на Java.

СГ>Juice превосходит Java-технологию во всем кроме величины затрат на рекламу:


СГ>1) Основан на более простом и совершенном языке


Что значит более простой язык?

СГ>2) Обеспечивает существенно большую скорость исполнения аплетов


Видимо, за счет some kind Woodoo Magic? Откуда "существенность"-то взялась? Ну или хотя бы ссылочку бы на статистику.

СГ>3) Код Juice-аплета компактнее байт-кода Java


Тут ничего не скажу, страничка Juice не открывается.
... << RSDN@Home 1.1.4 beta 3 rev. 205>>
Re[5]: арифметические, логические, бинарные
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 16:12
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Ну Вы опять говорите о Паскале имея в виду тот древний, который прямой потомок Алгола.


Скорее на основании своего опыта работы с Дельфи.

СГ> В современном (от 1994 года) Component Pascal (тот который есть модифицированный Oberon-2) бинарных операций с числами нет вообще.


Мать моя женщина!... А как же на нем вообще можно тогда программирование учить?

СГ> Число — это математическая абстракция, программист не должен знать как она реализована на конкретной машине. Это делает язык переносимым между любыми архитектурами компьютеров.


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

СГ> Для бинарных операций существует специальный тип данных — SET (множество). Множество — тоже математическая абстракция, и тут снова программист не должен знать как она реализована на конкретной машине. Для SET-ов реализованы все характерные для множеств операции (объединение, разность, пересечение, симметричная разность).


На счет SET-ов согласен. Красивая и удобная абстракция. Это пожалуй одна из очень редких фич которые я с удовольствием увидил бы в языках наследниках С.

СГ>Для логических операций, само-собой, предусмотрен тип BOOLEAN... думаю, излишне о нем что-либо рассказывать...


Не нужно обяснять почему язык не имеющий бинарных операций (с битами) неудастся применять в реальных проктах?

СГ>И так, в современном Паскале (1) арифметические, (2) логические и (3) бинарные операции можно осуществлять только над соответствующими типами данных: (1) числовыми, (2) буллевым, (3) множествами. То есть, все безупречно purify! Для школьников и студентов — то что доктор прописал!


Возможно я незнаю "современного паскаля", но в Дельфи с бинарными операциями полная задница. Так:
if a = b and b < c then ...

будет рассматриваться как:
if a = BinAnd(b, b)) < c then ...

СГ>Ну, чтобы уж совсем не отрываться от действительности, и иметь возможность использовать обероны в системном программировании, так уж и быть (хотя с точки зрения математики это и бессмысленно), предусмотрены инструкции конвертации чисел во множества, и множеств в числа:

СГ>
СГ>set     := BITS(integer);
СГ>integer := ORD(set);
СГ>

СГ>при этом, разумеется, учитываются архитектурные особенности представления чисел на используемом компьютере, так что программа остается переносимой.

Нда. Типа оторвались от платформы, но были притянуты к ней обратно. А не проще ли было как в том же С сделать? Ввести бинарные и логические операторы?
Куда проще читать такой код:
if ((a & b) != 0 && c < b) ...

чем:
if (((a and b) != 0) and (c < b)) then ...
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Oberon???????????????????????????????????
От: Poisson Россия  
Дата: 21.10.04 18:12
Оценка: 1 (1)
Здравствуйте, Kluev, Вы писали:


K>>>На питоне надо новичков учить. Прост как три копейки и в командном режиме может работать как калькулятор.

K>>>Более того в джаве только классы, а в питоне можно и с функций начать.
Про питон я знаю постольку-поскольку, поэтому дальше просто вопросы, а не придирки.

— как обстоят дела с GUI? В смысле, насколько легко привязывается интерфейс к коду?
— есть ли готовые библиотеки распределенного взаимодействия (a la .net remoting)?
— как дела с IDE? С отладчиком, refactoring browser'ом ну и всем чем полагается.
— легко ли обеспечить взаимодействие с OS? Если говорить о win32 — использование dll, COM..

В случае VisualWorks Smalltalk эти вопросы решены на 4-5, а browser/debugger — на 5+.

K>В качестве примера кодец на питоне:

>>>> for i in range(10) : print i

Вот тоже кодец, похожий, на Smalltalk'е =)

1 to: 10 do: [:each | Transcript show: each]


K>Выполняется прямо в командной строке без компиляции, написания функции и т.п. ИМХО если учить то лучше питона не найти


Аналогично, выполняется в Workspace'е, без [явной] компиляции. Однако, в отличие от питона, я могу посмотреть, а что же такое происходит при выполнении этого куска кода. Дело в том что to:do: — это метод класса Number, на исходник котороо можно посмотреть или зайти отладчиком. А show: — метод класса TextCollector, опять-таки все можно посмотреть-потрогать руками и даже изменить. Ну и так далее.

Вся прелесть смоллтока как языка для обучения в том, что в нем нет ключевых слов вроде for, while, if и т.п. — все ветвления и циклы реализованы за счет стандартного механизма посылки сообщенияй объектам. Browser в руки и вперед.
... << RSDN@Home 1.1 beta 2 >>
Re[6]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 19:03
Оценка:
Здравствуйте, FR, Вы писали:

FR>У питона куча реальных преимуществ перед Шарпом, так же как и у Шарпа перед Питоном.

FR>А главное же преимущество более высокий уровень языка. (Да кое-что я тебе в теме C++ и Net продемонстрировал, но ты куда-то пропал оттуда)

Вот как раз более высокого уровня языка я и не увидел. Отдельные фичи (вроде встроеных списков), да, но общего приемущества хоть убей не вижу.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 19:03
Оценка:
Здравствуйте, Kluev, Вы писали:

K>Я сам упертый Cpp-шник начинавший с паскаля (потом джава был, потом плюсы). Если бы я начал с нуля то начал бы именно с питона. Отсутсвие типизации на началном этапе это не минус а плюс. А чтобы оценить кайф скачай не книгу а среду. Учится можено прямо в интеракивном режиме плавно переходя от калькулятора к программированиюю Иеальный вариант чтобы обяснить все быстро и на пальцах. Вот пример


Да не увидил я тут ничего принципиально новгого. Чем это лучше чем:
class Summator
{
    public int a;
    public int b;
    
    public int Sum()
    {
        return a + b;
    }
}

?
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 19:03
Оценка: 10 (1)
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Оберон не мертвяк, то что Вы о нем ничего не знаете говорит о Вас и только о Вас.


Мертвяк. Причем чистейший воды. Ни одного комерческого проекта.

СГ>Ява и Шарп хуже Оберона тем, что Оберон проще


Простота должна иметь разумные пределы.

СГ>, чище


Вот это уже неправда.

СГ> и меньше и в то же время он полный, в смысле, достаточный современный объектно ориентированный


Вот ОО в нем — это извращение. Собственно познакомившись (несколько лет тому назад) со взглядами Вирта на ООП я и понял, что жить этому извращению не прийдется.

СГ>модульный


А типа Ява и Шарп не модульные.

СГ>императивный язык общего назначения со строгой статической типизацией


Ага. Ну, просто "он один такой".

СГ> и встроенными механизмами безопасности (проверка индексов, правильное приведение типов, сборка мусора).


Ага. Ну, куда там той же Яве и Шарпу до него?

СГ>О превосходстве оберонов над Явой на ее родном поле боя — в интернете, можно почитать там:

СГ>http://www.uni-vologda.ac.ru/oberon/
СГ>[q]
СГ>Juice-технология

Не, ну, если делать больше нечего, то чтение пропаганды — это самое то развлечение. Вот только по жизни на Яве (хотя я и не считаю ее идеалом) написано тонны кода, а на Обероне практически ничего.

СГ>Летом 1996 года профессором Калифорнийского университета в Ирвине, учеником Н.Вирта Михаэлем Францем и его аспирантом Томасом Кистлером была представлена технология распространения исполнимого кода в Интернет, названная авторами Juice (по-русски — сок). Juice основан на использовании Оберона и влючает с одной стороны инструментальную компоненту для Оберон-системы Oberon System 3, обеспечивающую компиляцию написанных на Обероне модулей в платформно-независимое представление. Второй частью Juice является дополнение (plug-in) к Интернет-браузерам, обеспечивающее компиляцию получаемого Juice-кода "на лету" в родной код, его загрузку и исполнение.


Вот этими самыми пресрелизами все эти соки и заночилсь. Как раз в том самом 96-ом.

СГ>Juice превосходит Java-технологию во всем кроме величины затрат на рекламу:


СГ>1) Основан на более простом и совершенном языке


Гы-гы. Совершенство еще то.

СГ>2) Обеспечивает существенно большую скорость исполнения аплетов


Два раза Гы-гы. Раскажи это тем кто не запускал ХотСпот. И вообще судить по 96-му году очень забавно.

СГ>3) Код Juice-аплета компактнее байт-кода Java


И как Ява живет со столь ужасно распухшим байткодом? Он же всего в двое компактнее аналогичного х86 кода?!

В общем, не смешите мои тапочки. Оберон мертворожденное детя интерес к которому испытывает только те самые проффесоры обученые Виртом. При всем моем к нему почтении ему бы хоть чуть-чуть реалистом быть.

Развитие Оберона с 96 года нет. Ява же бурно развивается и в основном в правильную сторону. Возможно в ней до сих пор хватает недочетов. Но это проверенный практикой язык (и технология). Она более чем пригодна для обучения. Так что не нужно запудривать людям мозги мертвятиной вроде Оберона. Им все же в будущем программы писать. И на не гипотетических языках. А на реальных.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 19:03
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Именно об этом Вирт и рассказывает в своем докладе:

СГ>

СГ>Преподавание информатики: потерянная дорога
СГ>Приветствие на открытии Международной конференции по преподаванию информатики ITiCSE
СГ>г. Аархус (Дания), 24 июня 2002 г.

СГ>http://www.inr.ac.ru/~info21/greetings/wirth_doklad_rus.htm

Ему бы спрятать свои амбиции по дальше и хоть раз на вещи трезво взглянуть.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: арифметические, логические, бинарные
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 21.10.04 19:23
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Куда проще читать такой код:

if ((a & b) != 0 && c < b) ...


Тоже самое на Обероне (Component Pascal):
VAR a, b: SET;
    c: INTEGER;
BEGIN
  a := {1, 4, 27, 30}; (* биты 1,4,27,30 равны 1 остальные биты равны 0 *)
  b := {0, 6, 27};     (* биты 0,6,27 равны 1 остальные биты равны 0 *) 
  c := 100;
  INCL(a, 8);          (* Бит номер 8 теперь тоже равен 1 *) 
  EXCL(b, 6);          (* Бит номер 6 теперь равен 0 *) 
  IF (a*b # {}) & (c < ORD(b)) THEN



Не пожалейте чуточку времени и прочитайте что написано там:
http://www.inr.ac.ru/~info21/cpascal/cp_report_1.4_rus.htm#8.2.3

8.2.3 Операции над множествами

+ объединение
— разность (x — y = x * (-y))
* пересечение
/ симметричная разность (x / y = (x-y) + (y-x))

Re[4]: Oberon???????????????????????????????????
От: ON  
Дата: 21.10.04 21:06
Оценка: :))) :))) :)))
From: WolfHound rsdn ICQ_315059559
LVV>Хочется альтернативный синтаксис показать.
>Зачем?

программист должен уметь языком овладеть задачей, но чтобы та не подхватила синтаксис
Posted via RSDN NNTP Server 1.9 gamma
Re[7]: Oberon???????????????????????????????????
От: FR  
Дата: 21.10.04 21:21
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, FR, Вы писали:


FR>>У питона куча реальных преимуществ перед Шарпом, так же как и у Шарпа перед Питоном.

FR>>А главное же преимущество более высокий уровень языка. (Да кое-что я тебе в теме C++ и Net продемонстрировал, но ты куда-то пропал оттуда)

VD>Вот как раз более высокого уровня языка я и не увидел. Отдельные фичи (вроде встроеных списков), да, но общего приемущества хоть убей не вижу.


Угу С# тоже никаких преимуществ перед плюсами не имеет так небольшие фичи
... << RSDN@Home 1.1.3 stable >>
Re[6]: Oberon???????????????????????????????????
От: FR  
Дата: 21.10.04 21:21
Оценка: 1 (1)
Здравствуйте, Poisson, Вы писали:

P>Здравствуйте, Kluev, Вы писали:



K>>>>На питоне надо новичков учить. Прост как три копейки и в командном режиме может работать как калькулятор.

K>>>>Более того в джаве только классы, а в питоне можно и с функций начать.
P>Про питон я знаю постольку-поскольку, поэтому дальше просто вопросы, а не придирки.

конечно совершено на придирки не похоже

P>- как обстоят дела с GUI? В смысле, насколько легко привязывается интерфейс к коду?


нормально с GUI, доступны tk, wxWindows, Qt, MFC ( ) и WinAPI

P>- есть ли готовые библиотеки распределенного взаимодействия (a la .net remoting)?


да

P>- как дела с IDE? С отладчиком, refactoring browser'ом ну и всем чем полагается.


скорее на тройку, хотя для интерпретатора это не так важно.

P>- легко ли обеспечить взаимодействие с OS? Если говорить о win32 — использование dll, COM..


легко, используя библиотеку PyWin

P>В случае VisualWorks Smalltalk эти вопросы решены на 4-5, а browser/debugger — на 5+.


K>>В качестве примера кодец на питоне:

>>>>> for i in range(10) : print i

P>Вот тоже кодец, похожий, на Smalltalk'е =)


P>
P>1 to: 10 do: [:each | Transcript show: each]
P>


по моему как тут уже сказали птичий язык

K>>Выполняется прямо в командной строке без компиляции, написания функции и т.п. ИМХО если учить то лучше питона не найти


P>Аналогично, выполняется в Workspace'е, без [явной] компиляции. Однако, в отличие от питона, я могу посмотреть, а что же такое происходит при выполнении этого куска кода. Дело в том что to:do: — это метод класса Number, на исходник котороо можно посмотреть или зайти отладчиком. А show: — метод класса TextCollector, опять-таки все можно посмотреть-потрогать руками и даже изменить. Ну и так далее.


В питоне тоже почти все можно посмотреть и зайти отладчиком.

P>Вся прелесть смоллтока как языка для обучения в том, что в нем нет ключевых слов вроде for, while, if и т.п. — все ветвления и циклы реализованы за счет стандартного механизма посылки сообщенияй объектам. Browser в руки и вперед.


У смолтока очень большой недостаток для целей обучения, он слишком не похож на самые распрастраненые языки.
... << RSDN@Home 1.1.3 stable >>
Re[5]: Oberon???????????????????????????????????
От: prVovik Россия  
Дата: 21.10.04 21:24
Оценка:
Здравствуйте, ON, Вы писали:

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


перечитал фразу несколько раз...
Интересно, кто-нибудь понял, что ON хотел сказать?

... << RSDN@Home 1.1.4 @@subversion >>
лэт ми спик фром май харт
Re[7]: арифметические, логические, бинарные
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 21:53
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

Это конечно несколько лучше чем в Паскале/Дельфи. Но все же я не понимаю на фиг так извращаться.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 21:53
Оценка:
Здравствуйте, Poisson, Вы писали:

Здается мне, что в Питоне понятнее и логичнее. А смотреть на то как работают операторы и встроенные функции как-то даже в голову не приходит.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 21:53
Оценка:
Здравствуйте, Kluev, Вы писали:

K>
>>>> for i in range(10) : print i
K>


K>Выполняется прямо в командной строке без компиляции, написания функции и т.п. ИМХО если учить то лучше питона не найти


Ну, и чем это отличается от Шарпа:
foreach (int i Range(10))
    Console.WriteLine(i);

?

А range и xrange не долго слабать и на самом Шарпе:
        static int[] Range(int len)
        {
            return Range(0, len, 1);
        }

        static int[] Range(int start, int len, int inc)
        {
            int count = (len - start) / inc;
            int[] array = new int[count];
            for (int val = start, i = 0; i < count; i++, val += inc)
                array[i] = val;
            return array;
        }


Или:
        static IEnumerable<int> Range2(int len)
        {
            return Range2(0, len, 1);
        }

        static IEnumerable<int> Range2(int start, int len, int inc)
        {
            int count = (len - start) / inc;
            for (int val = start, i = 0; i < count; i++, val += inc)
                yield return val;
        }
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 22:06
Оценка:
Здравствуйте, FR, Вы писали:

FR>Угу С# тоже никаких преимуществ перед плюсами не имеет так небольшие фичи


Это не ответ. А приемущества перед плюсами можно перечислять часами. Хотя это и не избавляет от некоторых недостатков.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 22:06
Оценка:
Здравствуйте, prVovik, Вы писали:

V>перечитал фразу несколько раз...

V>Интересно, кто-нибудь понял, что ON хотел сказать?

V>


Это штка юмеора. Тебе не понять.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Oberon???????????????????????????????????
От: FR  
Дата: 21.10.04 22:39
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>А range и xrange не долго слабать и на самом Шарпе:

VD>
VD>        static int[] Range(int len)
VD>        {
VD>            return Range(0, len, 1);
VD>        }

VD>        static int[] Range(int start, int len, int inc)
VD>        {
VD>            int count = (len - start) / inc;
VD>            int[] array = new int[count];
VD>            for (int val = start, i = 0; i < count; i++, val += inc)
VD>                array[i] = val;
VD>            return array;
VD>        }
VD>


VD>Или:

VD>
VD>        static IEnumerable<int> Range2(int len)
VD>        {
VD>            return Range2(0, len, 1);
VD>        }

VD>        static IEnumerable<int> Range2(int start, int len, int inc)
VD>        {
VD>            int count = (len - start) / inc;
VD>            for (int val = start, i = 0; i < count; i++, val += inc)
VD>                yield return val;
VD>        }
VD>


лучше так:

def my_range(n):
    i = 0
    while i < n:
        yield i
        i += 1


... << RSDN@Home 1.1.3 stable >>
Re[9]: Oberon???????????????????????????????????
От: FR  
Дата: 21.10.04 22:45
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, FR, Вы писали:


FR>>Угу С# тоже никаких преимуществ перед плюсами не имеет так небольшие фичи


VD>Это не ответ. А приемущества перед плюсами можно перечислять часами. Хотя это и не избавляет от некоторых недостатков.


Так у тебя тоже не ответ.
Любое преимущество можно обозвать отдельными фичами, а можно и часами его перечислять
... << RSDN@Home 1.1.3 stable >>
Re[10]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 23:00
Оценка:
Здравствуйте, FR, Вы писали:

FR>Так у тебя тоже не ответ.


Правильно. У меня вопрос.

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


Ну, так ты покажи хоть какие-то кроме встроенных средств работы с коллекциями.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.10.04 23:00
Оценка:
Здравствуйте, FR, Вы писали:

FR>лучше так:


FR>
FR>def my_range(n):
FR>    i = 0
FR>    while i < n:
FR>        yield i
FR>        i += 1
FR>


FR>


Чем лучше? Вместо скобок пробеы и отсуствие типизации (что скорее минус).

ЗЫ

Кстати, твой вариант не воспроизводит всех возможностей range.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Oberon???????????????????????????????????
От: FR  
Дата: 21.10.04 23:55
Оценка:
Здравствуйте, VladD2, Вы писали:


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


VD>Ну, так ты покажи хоть какие-то кроме встроенных средств работы с коллекциями.


так показывал уже тот же калькулятор, но ты не смотришь.
... << RSDN@Home 1.1.3 stable >>
Re[8]: Oberon???????????????????????????????????
От: FR  
Дата: 21.10.04 23:55
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Чем лучше? Вместо скобок пробеы и отсуствие типизации (что скорее минус).


А чем хуже? Да судя по отступам этот Range еще в какой то класс засунут? Если так
то это недостаток
А отсутствие типизации имеет не только недостатки но и преимущества например функция автоматически
становится обощенной.

VD>ЗЫ


VD>Кстати, твой вариант не воспроизводит всех возможностей range.


твой тоже, упущенно, что может быть два аргумента

def my_range(*name):
    if(len(name) == 1): name = (0, name[0], 1)
    if(len(name) == 2): name = name.append(1)
    i = name[0]
    while i < name[1]:
        yield i
        i += name[2]
... << RSDN@Home 1.1.3 stable >>
Re[7]: Oberon???????????????????????????????????
От: Poisson Россия  
Дата: 22.10.04 05:10
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Здается мне, что в Питоне понятнее и логичнее.

Дело вкуса.

VD> А смотреть на то как работают операторы и встроенные функции как-то даже в голову не приходит.

Понятно, что смотреть на устройство какого-нибудь print и увидеть дизассемблированный код, ну или
даже код на C/C++ (сам питоновсаий интерпретатор вроде на C++ написан?) не очень интересно. Но в случае со смоллтоком мы видим код на том же смоллтоке (где-то в глубине упирающийся, конечно, в вызов примитива VM), что для начинающего очень и очень удобно — есть откуда брать массу полезных примеров.
... << RSDN@Home 1.1 beta 2 >>
Re[9]: Oberon???????????????????????????????????
От: eugals Россия  
Дата: 22.10.04 06:51
Оценка:
Здравствуйте, FR, Вы писали:

FR>
FR>def my_range(*name):
FR>    if(len(name) == 1): name = (0, name[0], 1)
FR>    if(len(name) == 2): name = name.append(1)
FR>    i = name[0]
FR>    while i < name[1]:
FR>        yield i
FR>        i += name[2]
FR>

Ошибка, однако
name.append вернёт None

лучше уж так:
def my_range( n, *args):
    i, n, step = args and ([n] + args + [1])[:3] or (0, n, 1)
    while i < n:
        yield i
        i += step
... << RSDN@Home 1.1.4 beta 2 >>
Re[5]: Oberon???????????????????????????????????
От: Obel  
Дата: 22.10.04 06:56
Оценка:
СГ>Ну, вот, еще один "спец" нашелся. Утверждает что Васик проще и совершеннее Оберона.

Подмена суждений — прием дешевого демагога.

СГ>А Вы случаем не на компанию по производству компьютеров и коммуникаций работаете? Они очень заинтересованы в том чтобы людям надо было как можно более мощное и быстрое оборудование.


Я работаю на компанию по призводству программного обеспечения. Она (эта компания) заинтересована в качественных, быстрых, компактных, безопасных, поддерживаемых, распространенных и стандартизированных технологиях разработки ПО.
Таких как Java и С#.
А Ваша компания, наверное, предлагает аналогичные решения на обероне?


СГ>Именно в родной код. Безопасность встроена в сам язык. В оберонистой программе никогда не бывает переполнения буфера (range index check).


Никада не говори никада

СГ> И Вам никогда не удасться что-то читать или писать по неправильному адресу, просто потому что в языке нет такого понятия как адрес, адресная арифметика, и самого адресного пространства как такового.


Как в Java
Re[8]: арифметические, логические, бинарные
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.10.04 07:33
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Сергей Губанов, Вы писали:


VD>Это конечно несколько лучше чем в Паскале/Дельфи. Но все же я не понимаю на фиг так извращаться.


А где, собственно, извращение? В том что с числами запрещены бинарные операции? Так это, как бы, правильно — кесарю кесарево, а слесарю слесарево. В тоже время это не вредит системному программированию, так как всегда можно преобразовать число в множество (BITS) и множество в число (ORD). Например, пусть есть число i: INTEGER, хотите обнулить старшие четыре бита, вуаля:
i := ORD( BITS(i) - {28,29,30,31} );
Re[9]: арифметические, логические, бинарные
От: Курилка Россия http://kirya.narod.ru/
Дата: 22.10.04 07:41
Оценка: +2
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, VladD2, Вы писали:


VD>>Здравствуйте, Сергей Губанов, Вы писали:


VD>>Это конечно несколько лучше чем в Паскале/Дельфи. Но все же я не понимаю на фиг так извращаться.


СГ>А где, собственно, извращение? В том что с числами запрещены бинарные операции? Так это, как бы, правильно — кесарю кесарево, а слесарю слесарево. В тоже время это не вредит системному программированию, так как всегда можно преобразовать число в множество (BITS) и множество в число (ORD). Например, пусть есть число i: INTEGER, хотите обнулить старшие четыре бита, вуаля:

СГ>
СГ>i := ORD( BITS(i) - {28,29,30,31} );
СГ>


Нет, ну я фигею, что за изврат, а...
Тут без бутылки фиг поймёшь, это ты и называешь понятным и классным?
по мне дак вот такая бы запись была бы гораздо понятней:

i := ORD(BITS(i) AND BITS (0,0,0,0, 1,1,1,1, 1,1,1,1, 1,1,1,1,)


а вычитание совсем не логичная операция, да и запись битов тоже хрен разберёшь,
я понимаю, что по вирту, чем туманней, тем круче, но жизнь требует совсем иного, имхо
Re[6]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.10.04 07:43
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ну, и чем это отличается от Шарпа:

foreach (int i Range(10))
    Console.WriteLine(i);



Ну, раз пошло такое дело, можно и я тоже чего-нибудь, про цикл for скажу.


program Prog1;

var s: string = 'Здравствуй мир!';
    c: char;
begin
  for c in s do write(c);
end.


Цикл for в Delphi 2005 (недавно появилась — 12 октября 2004) теперь работает с любыми перечислимыми типами, в том числе со строками.
Re[10]: арифметические, логические, бинарные
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.10.04 07:45
Оценка:
Здравствуйте, Курилка, Вы писали:

К>а вычитание совсем не логичная операция


Вычитание одного множества из другого не понятная операция? Просто в первом множестве исчезают все элементы, которые есть во втором множестве. Чего не понятного-то?
Re[6]: Oberon???????????????????????????????????
От: Kluev  
Дата: 22.10.04 07:47
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Kluev, Вы писали:


K>>
>>>>> for i in range(10) : print i
K>>


K>>Выполняется прямо в командной строке без компиляции, написания функции и т.п. ИМХО если учить то лучше питона не найти


VD>Ну, и чем это отличается от Шарпа:

VD>
VD>foreach (int i Range(10))
VD>    Console.WriteLine(i);
VD>

VD>?

Чем отличается? тем что как уже было сказано:
K>>Выполняется прямо в командной строке без компиляции, написания функции и т.п.

А минимальная шарп программа это как минимау класс со статической main к которой среда еще и аттрибут подосовывает. Плюс using, плюс namespace, плюс среда, плюс компиляция. Вообщем не многовато ли для начинающего?
Re[11]: арифметические, логические, бинарные
От: Курилка Россия http://kirya.narod.ru/
Дата: 22.10.04 07:49
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, Курилка, Вы писали:


К>>а вычитание совсем не логичная операция


СГ>Вычитание одного множества из другого не понятная операция? Просто в первом множестве исчезают все элементы, которые есть во втором множестве. Чего не понятного-то?


Представь студента и у него есть вычитание чисел, которое даст совсем другой результат, т.е. совсем он будет ожидать не того, что ты ему скажешь.
Думать-то он будет далеко не о множествах, имхо.
Вопрос-то шёл о бинарном представлении чисел, а не об абстрактных множествах, оторваных в бол-ве случаев от жизни.
Re[4]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.10.04 08:01
Оценка: 1 (1) -1
Здравствуйте, VladD2, Вы писали:

VD> Мертвяк. Причем чистейший воды. Ни одного комерческого проекта.


Вы не компетенты в вопросах об оберонах. Я уже приводил ссылки, среди которых, например, упоминается коммерческий проект создания ПО для ЭЛЕКТРОСТАНЦИИ (не хило не так-ли?), в ссылках сайта info21 есть военный проект по управлению беспилотными летающими аппаратами (опять не хило?).

VD> Развитие Оберона с 96 года нет.


Мало того что Вы не компетентны в вопросах об оберонах, но Вы еще и просто не внимательны. Совсем недавно, на этом форуме обсуждались "активные объекты". Вы случаем не обратили внимание на фигурирующие в даваемых ссылках даты? Создание Aos ~ 2000 год, диссертация Мюллера 2002 год. Работа над Zonnon идет по сей день.

Посмотрите даты проектов: http://www.cs.inf.ethz.ch/gutknecht/
Re[5]: Oberon???????????????????????????????????
От: Курилка Россия http://kirya.narod.ru/
Дата: 22.10.04 08:07
Оценка: :)
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, VladD2, Вы писали:


VD>> Мертвяк. Причем чистейший воды. Ни одного комерческого проекта.


СГ>Вы не компетенты в вопросах об оберонах. Я уже приводил ссылки, среди которых, например, упоминается коммерческий проект создания ПО для ЭЛЕКТРОСТАНЦИИ (не хило не так-ли?), в ссылках сайта info21 есть военный проект по управлению беспилотными летающими аппаратами (опять не хило?).


VD>> Развитие Оберона с 96 года нет.


СГ>Мало того что Вы не компетентны в вопросах об оберонах, но Вы еще и просто не внимательны. Совсем недавно, на этом форуме обсуждались "активные объекты". Вы случаем не обратили внимание на фигурирующие в даваемых ссылках даты? Создание Aos ~ 2000 год, диссертация Мюллера 2002 год. Работа над Zonnon идет по сей день.


СГ>Посмотрите даты проектов: http://www.cs.inf.ethz.ch/gutknecht/


А ты очень компетентен, прям жуть?
Вот приведи статистику по числу раб. мест на обероне?
Хотябы в Швейцарии есть такие вообще?
Возьми теперь и сравни даты, числа и объёмы с тем же C#, да я думаю даже со смолтолком оберон будет очень хило выглядеть (эй смолтолковцы, замолвите словечко )
Re[10]: Oberon???????????????????????????????????
От: FR  
Дата: 22.10.04 08:08
Оценка:
Здравствуйте, eugals, Вы писали:

E>Ошибка, однако

E>name.append вернёт None

угу поздно было, можно было и не то написать

я думаю так проще и понятней:
def my_range(begin, end = None, step = 1):
    if end == None: begin, end = 0, begin
    while begin < end:
        yield begin
        begin += step
... << RSDN@Home 1.1.3 stable >>
Re[7]: Oberon???????????????????????????????????
От: FR  
Дата: 22.10.04 08:17
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>
СГ>program Prog1;

СГ>var s: string = 'Здравствуй мир!';
СГ>    c: char;
СГ>begin
СГ>  for c in s do write(c);
СГ>end.
СГ>


СГ>Цикл for в Delphi 2005 (недавно появилась — 12 октября 2004) теперь работает с любыми перечислимыми типами, в том числе со строками.


Точно из питона сперли
В питоне for помощнее он может работать с любыми итераторами.
... << RSDN@Home 1.1.3 stable >>
Re[4]: Oberon???????????????????????????????????
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 22.10.04 12:38
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, LaptevVV, Вы писали:


LVV>>Это конечно мысль. Или еще можно С# попробовать. Но хотелось бы не Сишного синтаксиса — для алтернативы.


VD>ВБ.НЭТ потянет? Сточки зрения простоты синтакиса и отсутствия сишных скобок самое оно. Только логических операций лучше на нем не давать. Они в нем такие же кривые как в Паскле (бен разделения на бинарные илогические).

То есть ты видишь разницу между побитовыми и булевыми операциями????
И представление булевых переменных в битовом представлении???
В Delphi (Паскале) ты можешь применять те или иные операции основываясь на их типе.
Нелзя применять как в C

 int i=0;
 if (~i ) {...}



i:Integer=0;
 ............
 if not Boolean(i) Then
 .....................
 if i<>0 Then

Без приведения к булевому типу
Меня лично в c# бесит это разграничение. Так что кривизна больше не в Паскале.
и солнце б утром не вставало, когда бы не было меня
Re[7]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 14:09
Оценка: -1
Здравствуйте, Kluev, Вы писали:

K>Чем отличается? тем что как уже было сказано:

K>>>Выполняется прямо в командной строке без компиляции, написания функции и т.п.

Это не приемущество. Во-первых, это на фиг не упало. А, во-вторых, создать утититку эмулирующую командрую строку задача на вечер.

K>А минимальная шарп программа это как минимау класс со статической main к которой среда еще и аттрибут подосовывает. Плюс using, плюс namespace, плюс среда, плюс компиляция. Вообщем не многовато ли для начинающего?


Для минимальной ни юсинги ни нэймспэйсы не нужны. А один класс можно пережить. Зато с самого начала народ будет приучаться к объектной ориентации и в последствии будет меньше вопросов. Опять так если уж сильно напрягает класс, то не проблем создать программку которая автоматически обернет код в класс.

В общем, это все не серьезные аргументы. А вот то отсуствие типов сильно попортит восприятие у начинющих. Типы концепция обязательная. Без нее еще ту кашу можно создать.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 14:09
Оценка: +1
Здравствуйте, FR, Вы писали:

FR>Точно из питона сперли


Питона еще на свете не было когда в ВБ for each появился.

FR>В питоне for помощнее он может работать с любыми итераторами.


Гы-гы. С какими итераторами не сможет работать foreach из Шарпа? А дельфийский как раз с него слизан по повду перехода дельфи под дотнет.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 14:09
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Цикл for в Delphi 2005 (недавно появилась — 12 октября 2004) теперь работает с любыми перечислимыми типами, в том числе со строками.


Дельфи грязновато спроектированный язык. Для обучения я бы его не стал использовать. А учитывая, что это один фиг будет дотнет, то и говорить не о чем.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 14:09
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, VladD2, Вы писали:



VD>>Чем лучше? Вместо скобок пробеы и отсуствие типизации (что скорее минус).


FR>А чем хуже?


Ты тут все о какой-то большей высокоуровневости толкуешь. Вот и интересно где она тут. Пример же ты привел. Была же какая-то фель в этом?

А хуже хотя бы тем, что нет понятия типа. Вроде как range/xrange генераторы полседовательностей целых чисел, но тип последовательости так и не описан. А стало быть никакого контроля типов. И дыра в понимании.

FR> Да судя по отступам этот Range еще в какой то класс засунут?


Какаим еще отсутпам?

FR> Если так то это недостаток


Это с чего бы? Поместить его можно куда угодно. Самое место ему в неком утилитарном классе, чтобы глобальное пространство имен не захламлял.

FR>А отсутствие типизации имеет не только недостатки но и преимущества например функция автоматически становится обощенной.


А зачем автоматически? Понятие полиморфизм нужно объяснять, да нет не объяснять, разжевывать, очень основательно и тщательно. Оно вместе с понятием абстракция являются основопологающим. Так что тут подобные "упрощения" только во вред.

FR>твой тоже, упущенно, что может быть два аргумента


Привет тебе. На то есть перегруженный вариант. Я просто о том, что при ранвых условиях разницы особой не будет.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 14:09
Оценка:
Здравствуйте, Poisson, Вы писали:

VD>>Здается мне, что в Питоне понятнее и логичнее.

P>Дело вкуса.

Ага. Даже его порчи. По этому подобные вещи давать в обучении просто катигорически нельзя.

P>даже код на C/C++ (сам питоновсаий интерпретатор вроде на C++ написан?) не очень интересно. Но в случае со смоллтоком мы видим код на том же смоллтоке (где-то в глубине упирающийся, конечно, в вызов примитива VM), что для начинающего очень и очень удобно — есть откуда брать массу полезных примеров.


Ничего нужного мы не увидим. На многих языках (в том числе на C++ и C#) можно рассматривать устройство стандартных библиотек. Вот только это бессмысленное занятие при обучении. Абстракция важна даже в таких мелочах. Функция вывода и гереация последовательностей для учеников — это аксиомы которые просто описываются и признаются исходными точками.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 14:09
Оценка:
Здравствуйте, FR, Вы писали:

FR>так показывал уже тот же калькулятор, но ты не смотришь.


В нем ничего интересного нет. Если охота пришлю калькулятор на шарпе.

В общем, откровенно говоря заявления об некой большей высокоуровневости Питона звучат неубедительно. При этом Питон страшен дотнете и явно проигрывает егму по распространению и приминимости в прикладных задачах. Другими солвами на практике дотнет полезнее, а обучение на том же Шарпе будет не сложнее чем на питоне. Наличие нескольких красивых фич не перекрывает остуствия типизации, отсуствие объявлений переменных, меньшую область применения.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 14:09
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, VladD2, Вы писали:


VD>> Мертвяк. Причем чистейший воды. Ни одного комерческого проекта.


СГ>Вы не компетенты в вопросах об оберонах.


Будем мериться компетенцией? Эдак все сктится к флэйму не более.

СГ> Я уже приводил ссылки, среди которых, например, упоминается коммерческий проект создания ПО для ЭЛЕКТРОСТАНЦИИ (не хило не так-ли?), в ссылках сайта info21 есть военный проект по управлению беспилотными летающими аппаратами (опять не хило?).


Созднаие еденичных проектов отдельными личностями ни коим образом не говорит о живости языка. На практике язык не используеется. И это факт в который не верят только особо упертые. Советую зайти на любой сайт посвященный поиску работы и поглядеть.

VD>> Развитие Оберона с 96 года нет.


СГ>Мало того что Вы не компетентны в вопросах об оберонах, но Вы еще и просто не внимательны. Совсем недавно, на этом форуме обсуждались "активные объекты". Вы случаем не обратили внимание на фигурирующие в даваемых ссылках даты? Создание Aos ~ 2000 год, диссертация Мюллера 2002 год. Работа над Zonnon идет по сей день.


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

Обсуждения "активных объектов" (ужас то какой? ) я просто не видел. Однако сути дела это не меняет. Язык мертв не потому что его не развивают энтузиасты, а потому что он невостребован.

СГ>Посмотрите даты проектов: http://www.cs.inf.ethz.ch/gutknecht/


Спсибо. Любая мало-мальская утилита и ут темболее язык всегда имеют некоторое количество применений. На той же латыни коворят тысячи человек во всем мире. Однако для того чтобы счтить язык жизвым нужно чтобы на нем говорила хотя одна страна (пусть даже это будет Люксембург). Точно так же для ЯП нужно чтобы его использовали для производства относительно большого количества проектов. Яву, Шарп, Дельфи, С++, С, ВБ используют для моря проектов. Сравинвать с ними Оберон просто смешно. При этом Оберон не имеет какх-то существенных приемуществ при обучении.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 14:56
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> То есть ты видишь разницу между побитовыми и булевыми операциями????


Ага. Причем мне откровенно жать тех кто ее не видит.

Вот простенькие примеры:
if (a == b && b < c)
    ...

И такой же код на Паскле:
if a = b and b < c then
    ...

выглядят одинаково? А смысл совершенно разный. Смысл пасклая бует таким:
if ((a == (b & b)) < c)
    ...

что несоменнео бред для этого языка. Так что прийдется сувать скобки и провкрки:
if (a = b) and (b < c) then
    ...

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

Собственно разница между битовыми операциями и логическими очень важна и полезна. Она позволяет писать более чистый коди и обезопасить программиста от ошибок еще на стадии компиляции.


S> И представление булевых переменных в битовом представлении???


Ну, что ты тут попытался сказать я так и не понял.

S> В Delphi (Паскале) ты можешь применять те или иные операции основываясь на их типе.


Нда. Причем тут это?

S> Без приведения к булевому типу

S> Меня лично в c# бесит это разграничение.

C# не для тебя. Он для тех кому дороги слова типобезопасность и для тех кто не будет уродовать код ради лишней милисикунды.

S> Так что кривизна больше не в Паскале.


Твоме мнение о "кривизне" мне извесно. Боюсь с ним будет несогласно большинство приличных программистов.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Oberon???????????????????????????????????
От: FR  
Дата: 22.10.04 15:23
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, FR, Вы писали:


FR>>Здравствуйте, VladD2, Вы писали:



VD>>>Чем лучше? Вместо скобок пробеы и отсуствие типизации (что скорее минус).


FR>>А чем хуже?


VD>Ты тут все о какой-то большей высокоуровневости толкуешь. Вот и интересно где она тут. Пример же ты привел. Была же какая-то фель в этом?


Привел в теме C++ и NET

Re[17]: С++ и .NET
Автор: FR
Дата: 14.10.04


кода в несколько раз меньше шарповского.


VD>А хуже хотя бы тем, что нет понятия типа. Вроде как range/xrange генераторы полседовательностей целых чисел, но тип последовательости так и не описан. А стало быть никакого контроля типов. И дыра в понимании.


это у тебя в шарпе они генераторы целых а в моем самописном на питоне любые числа можно подсунуть хоть комплексные, практически это шаблонная функция.
Проверку типов при необходимости легко встроить if type(begin) != type(int): raise ValueError("")

VD>Это с чего бы? Поместить его можно куда угодно. Самое место ему в неком утилитарном классе, чтобы глобальное пространство имен не захламлял.


Так я и говорю что засовывание в Range в класс это плохо, так как ООП тут нафиг не нужен.

FR>>А отсутствие типизации имеет не только недостатки но и преимущества например функция автоматически становится обощенной.


VD>А зачем автоматически? Понятие полиморфизм нужно объяснять, да нет не объяснять, разжевывать, очень основательно и тщательно. Оно вместе с понятием абстракция являются основопологающим. Так что тут подобные "упрощения" только во вред.


с одной стороны я согласен что вред, но с другой объяснять обобщенное программирование гораздо легче на питоне чем на плюсах или шарпе.

FR>>твой тоже, упущенно, что может быть два аргумента


VD>Привет тебе. На то есть перегруженный вариант. Я просто о том, что при ранвых условиях разницы особой не будет.


там нет варианта с двумя аргументами, да я не понял Шарп подерживает параметры по умолчанию? Если да то там надо добавить только = 1 к третьему параметру

А мой последний пример:

def my_range(begin, end = None, step = 1):
    if end == None: begin, end = 0, begin
    while begin < end:
        yield begin
        begin += step
... << RSDN@Home 1.1.3 stable >>
Re[9]: Oberon???????????????????????????????????
От: FR  
Дата: 22.10.04 15:23
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, FR, Вы писали:


FR>>Точно из питона сперли


VD>Питона еще на свете не было когда в ВБ for each появился.


Угу если учесть что питон появился в 91 году

FR>>В питоне for помощнее он может работать с любыми итераторами.


VD>Гы-гы. С какими итераторами не сможет работать foreach из Шарпа? А дельфийский как раз с него слизан по повду перехода дельфи под дотнет.


не знаю как в Шарпе, но как я понял в Дельфи не с любыми итераторами.
... << RSDN@Home 1.1.3 stable >>
Re[13]: Oberon???????????????????????????????????
От: FR  
Дата: 22.10.04 15:23
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, FR, Вы писали:


FR>>так показывал уже тот же калькулятор, но ты не смотришь.


VD>В нем ничего интересного нет. Если охота пришлю калькулятор на шарпе.


так я же по следам твоего шарпового и написал

Re[17]: С++ и .NET
Автор: FR
Дата: 14.10.04


VD>В общем, откровенно говоря заявления об некой большей высокоуровневости Питона звучат неубедительно. При этом Питон страшен дотнете и явно проигрывает егму по распространению и приминимости в прикладных задачах. Другими солвами на практике дотнет полезнее, а обучение на том же Шарпе будет не сложнее чем на питоне. Наличие нескольких красивых фич не перекрывает остуствия типизации, отсуствие объявлений переменных, меньшую область применения.


Обучение с нуля на Шарпе точно будет сложнее, только за счет того что даже простейшая программка загромождается не нужными вещами. (оберткой в class)

А уровень языка тяжело определить, слишком уж это субъективно.
Можно конечно попробовать по числу строк на решение конкретной задачи, но это мне кажется мало, тут вполне может и forth выиграть
Так что остается только на мелких задачках, но мне честно лень специально этим заниматся, если что попадется на глаза заброшу сюда.
... << RSDN@Home 1.1.3 stable >>
Re[6]: Oberon???????????????????????????????????
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 22.10.04 15:34
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Serginio1, Вы писали:


S>> То есть ты видишь разницу между побитовыми и булевыми операциями????


VD>Ага. Причем мне откровенно жать тех кто ее не видит.


VD>Вот простенькие примеры:

VD>
VD>if (a == b && b < c)
VD>    ...
VD>

VD>И такой же код на Паскле:
VD>
VD>if a = b and b < c then
VD>    ...
VD>



Твое отношение к скобкам известно. Мне лично не нравятся приоритеты особенно в длинных выражениях.
Зачем нуэно разграничение операторов если их применение зависит от типа?????
Плодить никому ненужные сущности????

VD>выглядят одинаково? А смысл совершенно разный. Смысл пасклая бует таким:

VD>
VD>if ((a == (b & b)) < c)
VD>    ...
VD>


Это бред для любого языка. Сравнивать булевы величины с числовыми.
С точки зрения представления в байтах это роли не играет. Но bool, wordbool итд выглядят по разному.
0 true -1 false. А в некоторых языках интерпретирутся false==0, true<>0.

VD>что несоменнео бред для этого языка. Так что прийдется сувать скобки и провкрки:

VD>
VD>if (a = b) and (b < c) then
VD>    ...
VD>


Вот правильный аналог твой записи.
при int a,b,c.
if integer(a = (b and b))<c then

VD>Ну, а если результаты битовых операций нужно логически проверить, то проблемы могут полезть изо всех щелей.


VD>Собственно разница между битовыми операциями и логическими очень важна и полезна. Она позволяет писать более чистый коди и обезопасить программиста от ошибок еще на стадии компиляции.


Все и так безопасно за счет типизации.

S>> И представление булевых переменных в битовом представлении???

смотри выше.
VD>Ну, что ты тут попытался сказать я так и не понял.

S>> В Delphi (Паскале) ты можешь применять те или иные операции основываясь на их типе.


VD>Нда. Причем тут это?


Все при том же. Ты не сможешь приенить битовые операторы к булевым и булевы к небулевым.
S>> Без приведения к булевому типу
S>> Меня лично в c# бесит это разграничение.

VD>C# не для тебя. Он для тех кому дороги слова типобезопасность и для тех кто не будет уродовать код ради лишней милисикунды.

А ты помнишь песню "Есть только миг между прошлым и будущим, именно он называется жизнь".
Все в этом мире относительно.

Ну Паскаль всегда был типобезопасным в отличие от некоторых языков, Иногда правда и во вред.
Но любые ограничения легко обходятся.
S>> Так что кривизна больше не в Паскале.

VD>Твоме мнение о "кривизне" мне извесно. Боюсь с ним будет несогласно большинство приличных программистов.

Ага в Яве и C# болше влияния Delphi (Паскаля) нежели C++.
(Всетаки Delphi был раньше Явы)
и солнце б утром не вставало, когда бы не было меня
Re[4]: Oberon???????????????????????????????????
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 22.10.04 15:59
Оценка: :))
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, LaptevVV, Вы писали:


LVV>>Хочется альтернативный синтаксис показать.


VD>1. Что в нем альтернативного? Та же императивщина, толко вместо скобок бегин с эндом, а вместо "=" используется ":=". Если уж показывать, то наврено лучше действительно какие-нибудь Хаскели и Питоны.

VD>2. Показать и научить две большие разницы. Показывать можно сколько влезет хоть десять языков. А на учение время нужно.

LVV>>Хотя я и о яве, и о дотнете с до диезом думал.


VD>Я бы на этом и остановился.


Ну зачем же. Я бы добавил еще и 1С!!!
Оптимально 1С,С#,Delphi + Хаскели и Питоны
и солнце б утром не вставало, когда бы не было меня
Re[10]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 18:04
Оценка:
Здравствуйте, FR, Вы писали:

VD>>Питона еще на свете не было когда в ВБ for each появился.


FR>Угу если учесть что питон появился в 91 году


А МС бэйсик в 75 если н ошибаюсь. С++ тоже раньше. Дельфи правда позже. Но в нем foreach как раз нет.

VD>>Гы-гы. С какими итераторами не сможет работать foreach из Шарпа? А дельфийский как раз с него слизан по повду перехода дельфи под дотнет.


FR>не знаю как в Шарпе, но как я понял в Дельфи не с любыми итераторами.


В дельфи я их еще не смотрел (фича больно недавно появилась, а дельфи меня что-то в последнее время не занимает), но думаю, что драли их несомненно с шарпа. А там они очень даже.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 18:04
Оценка:
Здравствуйте, FR, Вы писали:

VD>>В нем ничего интересного нет. Если охота пришлю калькулятор на шарпе.


FR>так я же по следам твоего шарпового и написал


FR>Re[17]: С++ и .NET
Автор: FR
Дата: 14.10.04


Ну, там одна идея была. Тут речь идет о полноценном продукте.

FR>Обучение с нуля на Шарпе точно будет сложнее, только за счет того что даже простейшая программка загромождается не нужными вещами. (оберткой в class)


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

FR>А уровень языка тяжело определить, слишком уж это субъективно.


Согласен. Однако по отношению к С++ вопросов не созникает. Стало быть при некоторой разнице определить все же можно. А стало быть разница слишком мала.

FR>Можно конечно попробовать по числу строк на решение конкретной задачи, но это мне кажется мало, тут вполне может и forth выиграть


Строки вообще мало чего решают. Решает простота восприятия. У Питона я заметил несколько особенностей способных сократить объем кода. Но они не способны сделать код проще и понятнее. Более того без специального изучения они не очевидны.

FR>Так что остается только на мелких задачках, но мне честно лень специально этим заниматся, если что попадется на глаза заброшу сюда.


Ну, а тогда не надо заявлять подобные вещи. А уж если заявляшь, то подтверждай фактами. Мне лично не очевидны преимущества питона. Красивые решения конечно есть, но они есть и в Шарпе. Думаю, если сравнить компонетные возможности, то тут Питон резко проиграет. В другой области окажется обратная картина.

В общем, как я уже говорил в начале учить Шарп и просто и полезно. Ведь найти потом работу на нем будет куда проще чем на питоне. А вообще лучше знать и то, и то, и С++ с Окамлом в придачу. Это точно не повредит.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Oberon???????????????????????????????????
От: prVovik Россия  
Дата: 22.10.04 18:14
Оценка: 1 (1)
Здравствуйте, VladD2, Вы писали:

VD>Начальный код можно исполнять и в специльно созданного для этого обертке.

Но только это уже будет НЕ С#, а получится какой-то свой собственный доморощенный язык
... << RSDN@Home 1.1.4 @@subversion >>
лэт ми спик фром май харт
Re[7]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 20:44
Оценка: :)
Здравствуйте, Serginio1, Вы писали:

S> Твое отношение к скобкам известно. Мне лично не нравятся приоритеты особенно в длинных выражениях.


Приоритеты тут в общем-то не причем. Хотя они тоже вещь полезная.

VD>>выглядят одинаково? А смысл совершенно разный. Смысл пасклая бует таким:

VD>>
VD>>if ((a == (b & b)) < c)
VD>>    ...
VD>>


S> Это бред для любого языка. Сравнивать булевы величины с числовыми.


Знаток, блин... Надыбай компилятор С++ определи переменные с типом int и поробуй скомпилировать. Уверяю тебя, что все скомпилируется без проблем.

В общем, ты меня извини. Но нехочу я с тобой осбуждать вопросы безопасного программирования. Ты его в принципе не признаешь.

S> Все при том же. Ты не сможешь приенить битовые операторы к булевым и булевы к небулевым.


Да нет никаких булевых операций в дельфи. Там только битовые. О том и речь. Это жудчайшая кривь. От этого, как оказалось, отакзался даже Вирт в Обероне.

VD>>C# не для тебя. Он для тех кому дороги слова типобезопасность и для тех кто не будет уродовать код ради лишней милисикунды.

S> А ты помнишь песню "Есть только миг между прошлым и будущим, именно он называется жизнь".
S> Все в этом мире относительно.



S> Ну Паскаль всегда был типобезопасным в отличие от некоторых языков, Иногда правда и во вред.


Паскаль то может и был. А вот Дельфи никгда. Там типобезопасность очень быстро порезализ для производственных нужд. Оно и понятно. Жизнь есть жинь. Но разум то нужно иметь...

S> Но любые ограничения легко обходятся.


А, ну, вот пусть фанаты и обходят. А детей учить на этом убожище не стоит.

S> Ага в Яве и C# болше влияния Delphi (Паскаля) нежели C++.


Ага. Ну, просто одно влияние дельфи... если другого не видил. Дельфи вышло в 95-ом. К этому моменту Ява уже разрабатвалась несколько лет.

S> (Всетаки Delphi был раньше Явы)


Ага. Примерно на пол года. Вот как они успели то все передрать.

И главное, как грамотно подрали то! Ни одной проблемы у дельфи не переняли.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 20:44
Оценка:
Здравствуйте, prVovik, Вы писали:

VD>>Начальный код можно исполнять и в специльно созданного для этого обертке.

V>Но только это уже будет НЕ С#, а получится какой-то свой собственный доморощенный язык

Почему же? Это будет тот самый шарп. Только упрощенный для начала. Хотя по мне так нет никаких проблем от пары лишних строчек кода.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.10.04 20:44
Оценка: 1 (1) +2
Здравствуйте, Serginio1, Вы писали:

S> Ну зачем же. Я бы добавил еще и 1С!!!


Точно 1Эс и всех в клинику. А еще лучше сразу молотком по голове чтобы не мучались.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Oberon???????????????????????????????????
От: FR  
Дата: 22.10.04 21:15
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, FR, Вы писали:


VD>>>Питона еще на свете не было когда в ВБ for each появился.


FR>>Угу если учесть что питон появился в 91 году


VD>А МС бэйсик в 75 если н ошибаюсь. С++ тоже раньше. Дельфи правда позже. Но в нем foreach как раз нет.


В бейсике for each появился не в 75 году.

VD>>>Гы-гы. С какими итераторами не сможет работать foreach из Шарпа? А дельфийский как раз с него слизан по повду перехода дельфи под дотнет.


FR>>не знаю как в Шарпе, но как я понял в Дельфи не с любыми итераторами.


VD>В дельфи я их еще не смотрел (фича больно недавно появилась, а дельфи меня что-то в последнее время не занимает), но думаю, что драли их несомненно с шарпа. А там они очень даже.


Может быть, но я тоже не горю желанием писать на delphi.net
... << RSDN@Home 1.1.3 stable >>
Re[15]: Oberon???????????????????????????????????
От: FR  
Дата: 22.10.04 21:15
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, FR, Вы писали:


VD>>>В нем ничего интересного нет. Если охота пришлю калькулятор на шарпе.


FR>>так я же по следам твоего шарпового и написал


FR>>Re[17]: С++ и .NET
Автор: FR
Дата: 14.10.04


VD>Ну, там одна идея была. Тут речь идет о полноценном продукте.


Ну пришли.

FR>>Обучение с нуля на Шарпе точно будет сложнее, только за счет того что даже простейшая программка загромождается не нужными вещами. (оберткой в class)


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


Будет, тут недавно пришлось знакомым которые купили, и практически в первый раз увидели компьютер, показывать как им пользоваться, так это просто кошмар. Любая мелочь которую ты даже не замечаешь для них чуть ли не откровение. Вроде люди не глупые все понимают, а вот на мелочах застревают и все.

FR>>А уровень языка тяжело определить, слишком уж это субъективно.


VD>Согласен. Однако по отношению к С++ вопросов не созникает. Стало быть при некоторой разнице определить все же можно. А стало быть разница слишком мала.


Понимаешь это все настолько субъективно что вряд-ли, в общем пора закруглятся.

FR>>Можно конечно попробовать по числу строк на решение конкретной задачи, но это мне кажется мало, тут вполне может и forth выиграть


VD>Строки вообще мало чего решают. Решает простота восприятия. У Питона я заметил несколько особенностей способных сократить объем кода. Но они не способны сделать код проще и понятнее. Более того без специального изучения они не очевидны.


Очень даже способны делать код и проще и понятней, просто тебе шоры си образного синтаксиса мешают.

FR>>Так что остается только на мелких задачках, но мне честно лень специально этим заниматся, если что попадется на глаза заброшу сюда.


VD>Ну, а тогда не надо заявлять подобные вещи. А уж если заявляшь, то подтверждай фактами. Мне лично не очевидны преимущества питона. Красивые решения конечно есть, но они есть и в Шарпе. Думаю, если сравнить компонетные возможности, то тут Питон резко проиграет. В другой области окажется обратная картина.


Так я никогда и не утверждал что питон во всем лучше шарпа.

VD>В общем, как я уже говорил в начале учить Шарп и просто и полезно. Ведь найти потом работу на нем будет куда проще чем на питоне. А вообще лучше знать и то, и то, и С++ с Окамлом в придачу. Это точно не повредит.


угу
только если все учить то на работу вообще времени не останется
... << RSDN@Home 1.1.3 stable >>
Re[7]: Oberon???????????????????????????????????
От: serg_mo  
Дата: 22.10.04 22:42
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Poisson, Вы писали:


VD>Здается мне, что в Питоне понятнее и логичнее. А смотреть на то как работают операторы и встроенные функции как-то даже в голову не приходит.


Зависит от того, что считать встроенными функциями .
Кстати, давайте рассмотрим еще один аргумент в пользу Смолтока.
В языках, подобных С++, Java, C# и подобных при изучении мне не обойтись без увесистого мануала.
Который описывает ключевые слова, управляющие конструкции языка, встроенные функции и операторы и т. п.
Не имея такого мануала, я никогда не догадаюсь, какие, например, существуют в языке операции над логическими переменными или как записать конструкцию цикла с предусловием.
В Смолтоке, поскольку я знаю, что любая конструкция выражается с помощью посылки сообщения (читай — вызова метода) соответствующего объекта, мне просто нужно посмотреть на интерфейс нужного класса. Например, чтобы понять, какие операции я могу производить над логическими переменными, мне нужно взглянуть на интерфейс класса Boolean.
Работая на Смолтоке, я уже забыл, что такое документация
Re[7]: Oberon???????????????????????????????????
От: serg_mo  
Дата: 23.10.04 00:08
Оценка: +1
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, Poisson, Вы писали:


P>>Вот тоже кодец, похожий, на Smalltalk'е =)


P>>
P>>1 to: 10 do: [:each | Transcript show: each]
P>>


FR>по моему как тут уже сказали птичий язык

Смолток действительно не похож на С-подобные языки. Тем не менее, анатомия языка чрезвычайно проста и подчиняется очень небольшому количеству правил, которые, так сказать, являются универсальными законами во вселенной Смолтока
Вот, например, статья, в которой на 11 странцах, с щутками и прибаутками, с массой примеров, дано практически всеобъемлющее описание синтаксиса Смолтока. Используя информацию из этой статьи, пользователь сможет прочитать _любой_ код на Смолтоке, даже если не понимает, что этот код делает.
Возьмем для иллюстрации приведенный выше пример:
1 to: 10 do: [:each | Transcript show: each]

Что можно сказать, используя наши знания о синтаксисе:
а) Имеет место посылка сообщения (или, по-другому, вызов метода) обьекта, стоящего крайним слева: 1.
б) Вызывается метод to:do:, принимающий 2 параметра.
в) Первый параметр, очевидно, число 10. Второй параметр сложнее. Допустим, я не знаю, что это, но я могу быть уверен, что это один из немногих специализированных конструкторов какого-то объекта. Почему я уверен? Да потому, что синтаксически альтернативы нет.

И действительно, конструкция [] — это "синтаксически подслащенный" конструктор класа BlockClosure — блока. Блоки имеют фундаментальное значение в Смолтоке, поэтому, наряду с немногими другими (например, строками и массивами), для создания объектов этого класса есть специальная синтаксическая конструкция. В частности, с помощью блоков реализуются все управляющие конструкции (как в этом примере — цикл со счетчиком).

Недостатком С-подобных языков, на мой взгляд, является то, что при их изучении приходится зазубривать огромное количество синтаксических конструкций и правил. Условные операторы — бац: кучка конструкций, циклы — еще одна кучка, арифметические операции — их приоритеты... Смолтокер, в свою очередь, может быть уверен, что синтаксические правила, данные в первой лекции (одной лекции будет вполне достаточно), универсальны, и сюрпризов его не ждет..

FR>У смолтока очень большой недостаток для целей обучения, он слишком не похож на самые распрастраненые языки.

Ну, это зависит от целей обучения
Re[8]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.10.04 01:30
Оценка:
Здравствуйте, serg_mo, Вы писали:

_>Кстати, давайте рассмотрим еще один аргумент в пользу Смолтока.


Если бы это было достоинством, то все давно бы работали на СмолТоке.

_>В языках, подобных С++, Java, C# и подобных при изучении мне не обойтись без увесистого мануала.

_>Который описывает ключевые слова, управляющие конструкции языка, встроенные функции и операторы и т. п.
_>Не имея такого мануала, я никогда не догадаюсь, какие, например, существуют в языке операции над логическими переменными или как записать конструкцию цикла с предусловием.
_>В Смолтоке, поскольку я знаю, что любая конструкция выражается с помощью посылки сообщения (читай — вызова метода) соответствующего объекта, мне просто нужно посмотреть на интерфейс нужного класса. Например, чтобы понять, какие операции я могу производить над логическими переменными, мне нужно взглянуть на интерфейс класса Boolean.
_>Работая на Смолтоке, я уже забыл, что такое документация

Предлагая (ну, так для разнообразия) открыть современную стреду вроде VS, Эклипса или Идеи и поглядеть как обстаят дела с пониманием кода в них. Уверю, что будет очень интересно. И окажется, что языки вроде Явы и Шарпа тоже можно успешно изучат без документации.

Прадва на счет тоже я бы усомнился. Я вот как-то пробовал покапаться в смолтоке и быстро бросил. Так как концепции не похожи на прижившиеся в современных языках. А мучиться не хотелось. За то вот Шарп и Яву я освоил очень быстро и без заглядывания в мануалы.
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.10.04 01:30
Оценка:
Здравствуйте, FR, Вы писали:

FR>В бейсике for each появился не в 75 году.


В QuickВасике вроде уже был. А это точно раньше 91-ого.

FR>Может быть, но я тоже не горю желанием писать на delphi.net


Ну, а вдруг завтра из нее сделают язык-мечту поэта?
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.10.04 01:30
Оценка: :)
Здравствуйте, FR, Вы писали:

FR>Ну пришли.


http://gzip.rsdn.ru/File/73/RasdCalc.zip толко он требует второго фрэймворка. Развлекался понимаш с менюшками и т.п.

FR>Будет, тут недавно пришлось знакомым которые купили, и практически в первый раз увидели компьютер, показывать как им пользоваться, так это просто кошмар. Любая мелочь которую ты даже не замечаешь для них чуть ли не откровение. Вроде люди не глупые все понимают, а вот на мелочах застревают и все.


Еще раз. Нет проблем сделать снипит-компилятор скроющий все детали. Да и дети те сначал будут сма компьютер изучать. Так что к этому моменту они уже будут далеко не ламерами.

FR>Понимаешь это все настолько субъективно что вряд-ли, в общем пора закруглятся.


Наверно. Кстати, возможно что фичи второго шарпа во многом тырили именно с питона.

FR>Очень даже способны делать код и проще и понятней, просто тебе шоры си образного синтаксиса мешают.


Ничего мне не мешат. Я довольно адекватно могу оценивать достоинства если они очевидны. Все эти х[3:5] долеко не очевидны. Они требуют объяснения на пальцах. А вот x.substring(3, 5) как раз можно понять и без объяснения. Тому способствует то что все методы имеют единый принцип и описание видное в редакторе. Я, например, долго тупо смотрел на х[3:5] пока не прочел о сути синтаксиса в книжке что ты привел. Когда понял, что это такой зазиповванный синтаксис для substring, то все стало проще. До сих пор, кстати, не пойму почему они для добавления элементов к спискам не сделали аналогичный синтаксис.

FR>Так я никогда и не утверждал что питон во всем лучше шарпа.


Ты заявлял что он более высокоуровнев. А я вот изучая его нашел как приемущества, так и недостатки. Но никак не превосходство в уровен.

FR>только если все учить то на работу вообще времени не останется


Да кому нужна эта работа...
... << RSDN@Home 1.1.4 beta 3 rev. 206>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 23.10.04 06:58
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Почитал я тут защитников Оберона, и задумался. Надо первачков учить....



Недавно, научно образовательный проект <b>Информатика 21</b> обзавелся своим форумом:
http://www.delphikingdom.com/asp/talktopic.asp?ID=339

Форум открыт по просьбам читателей сайта проекта для обсуждения Оберона/Компонентного Паскаля/Блэкбокса как технологической платформы для современной общей системы преподавания программирования, параллельной и дополняющей систему преподавания математики. Мнения за и против, вопросы как и почему, и т.п.

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

Re[8]: Oberon???????????????????????????????????
От: FR  
Дата: 23.10.04 09:21
Оценка: +2 -1
Здравствуйте, serg_mo, Вы писали:


FR>>по моему как тут уже сказали птичий язык

_>Смолток действительно не похож на С-подобные языки. Тем не менее, анатомия языка чрезвычайно проста и подчиняется очень небольшому количеству правил, которые, так сказать, являются универсальными законами во вселенной Смолтока

Он не похож вообще на другие языки.
Простота не всегда хорошо, что хорошо видно здесь на примере того же оберона.

_>Вот, например, статья, в которой на 11 странцах, с щутками и прибаутками, с массой примеров, дано практически всеобъемлющее описание синтаксиса Смолтока. Используя информацию из этой статьи, пользователь сможет прочитать _любой_ код на Смолтоке, даже если не понимает, что этот код делает.


А какой смысл читать код не понимая что он делает? Это примерно как выучить латинский алфавит и кричать что хорошо знаешь латынь?

_>Возьмем для иллюстрации приведенный выше пример:

_>
_>1 to: 10 do: [:each | Transcript show: each]
_>

_>Что можно сказать, используя наши знания о синтаксисе:
_>а) Имеет место посылка сообщения (или, по-другому, вызов метода) обьекта, стоящего крайним слева: 1.
_>б) Вызывается метод to:do:, принимающий 2 параметра.
_>в) Первый параметр, очевидно, число 10. Второй параметр сложнее. Допустим, я не знаю, что это, но я могу быть уверен, что это один из немногих специализированных конструкторов какого-то объекта. Почему я уверен? Да потому, что синтаксически альтернативы нет.

_>И действительно, конструкция [] — это "синтаксически подслащенный" конструктор класа BlockClosure — блока. Блоки имеют фундаментальное значение в Смолтоке, поэтому, наряду с немногими другими (например, строками и массивами), для создания объектов этого класса есть специальная синтаксическая конструкция. В частности, с помощью блоков реализуются все управляющие конструкции (как в этом примере — цикл со счетчиком).


По моему такое длиное объяснение такого элементарного понятия как цикл, уже показывает что с языком что-то не так. Во всяком случае для обучения точно это плохо.

_>Недостатком С-подобных языков, на мой взгляд, является то, что при их изучении приходится зазубривать огромное количество синтаксических конструкций и правил. Условные операторы — бац: кучка конструкций, циклы — еще одна кучка, арифметические операции — их приоритеты... Смолтокер, в свою очередь, может быть уверен, что синтаксические правила, данные в первой лекции (одной лекции будет вполне достаточно), универсальны, и сюрпризов его не ждет..


Вот только мне кажется что ближе к человеческому мышлению как раз большое количество синтаксических конструкций как и в естественных языках.
... << RSDN@Home 1.1.3 stable >>
Re[17]: Oberon???????????????????????????????????
От: FR  
Дата: 23.10.04 09:21
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, FR, Вы писали:


FR>>Ну пришли.


VD>http://gzip.rsdn.ru/File/73/RasdCalc.zip толко он требует второго фрэймворка. Развлекался понимаш с менюшками и т.п.


посмотрю как доберусь до второго фрамеворка.

VD>Еще раз. Нет проблем сделать снипит-компилятор скроющий все детали. Да и дети те сначал будут сма компьютер изучать. Так что к этому моменту они уже будут далеко не ламерами.


В программировании будут

FR>>Понимаешь это все настолько субъективно что вряд-ли, в общем пора закруглятся.


VD>Наверно. Кстати, возможно что фичи второго шарпа во многом тырили именно с питона.


Сейчас уже и не определишь кто и что откуда стырил, коммунизм практически

FR>>Очень даже способны делать код и проще и понятней, просто тебе шоры си образного синтаксиса мешают.


VD>Ничего мне не мешат. Я довольно адекватно могу оценивать достоинства если они очевидны. Все эти х[3:5] долеко не очевидны. Они требуют объяснения на пальцах. А вот x.substring(3, 5) как раз можно понять и без объяснения. Тому способствует то что все методы имеют единый принцип и описание видное в редакторе. Я, например, долго тупо смотрел на х[3:5] пока не прочел о сути синтаксиса в книжке что ты привел. Когда понял, что это такой зазиповванный синтаксис для substring, то все стало проще. До сих пор, кстати, не пойму почему они для добавления элементов к спискам не сделали аналогичный синтаксис.


Как только понял что это такое, очень даже очевидна, я же говорю тебе мешают привычки, мне тоже мешали.
Как это не сделали? Они на строки со списков и переползли.
>>> print [0, 1, 2, 3, 4][1:3]
[1, 2]


>>> l = [0, 1, 2, 3, 4, 5]
>>> l[1:3] = [9, 9]
>>> print l
[0, 9, 9, 3, 4, 5]


FR>>Так я никогда и не утверждал что питон во всем лучше шарпа.


VD>Ты заявлял что он более высокоуровнев. А я вот изучая его нашел как приемущества, так и недостатки. Но никак не превосходство в уровен.


Я же говорю это субъективно. Много людей которые так же утверждают что шарп на одном уровне с плюсами.
Я и сам так думал, пока питон не начал изучать
... << RSDN@Home 1.1.3 stable >>
Re[15]: Oberon?
От: eugals Россия  
Дата: 23.10.04 11:17
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Думаю, если сравнить компонетные возможности, то тут Питон резко проиграет.

Поясни, что за возможности?
... << RSDN@Home 1.1.4 beta 2 >>
Re[5]: Oberon???????????????????????????????????
От: Rinver  
Дата: 23.10.04 11:51
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Dervish, Вы писали:


D>>Здравствуйте, LaptevVV, Вы писали:


LVV>>>Но хотелось бы не Сишного синтаксиса — для алтернативы.


D>>Пролог?

LVV>На первом курсе?
А Haskel на первом курсе нормально ?
С уважением, Rinver.
Re[6]: вопрос знатокам SmallTalk
От: lesha-v  
Дата: 23.10.04 14:55
Оценка:
Здравствуйте,
Решил я посмотреть на SmallTalk... скачал VisualWorks7.2.1, установил...
аа шрифт в диалогах прочитать не возможно что делать, подскажите ? неужели так и не удасться познакомиться со смолтолком...
Re[9]: Oberon???????????????????????????????????
От: Poisson Россия  
Дата: 23.10.04 19:52
Оценка:
Здравствуйте, VladD2, Вы писали:

_>>Кстати, давайте рассмотрим еще один аргумент в пользу Смолтока.

VD>Если бы это было достоинством, то все давно бы работали на СмолТоке.
Все далеко не всегда работают на лучшем, на правда ли? Вон сколько языков существует, наверное хоть какой-то из них -- лучший, по пишут-то все на разных языках...

VD>Предлагая (ну, так для разнообразия) открыть современную стреду вроде VS, Эклипса или Идеи и поглядеть как обстаят дела с пониманием кода в них. Уверю, что будет очень интересно. И окажется, что языки вроде Явы и Шарпа тоже можно успешно изучат без документации.

Это менее удобно. В ST я за пару кликов могу посмотреть интефейс класса (отсортированный, между прочим, по категориям), могу за один клик посмотреть все ссылки (или все реализации) данного метода в пределах всего image'а (а не только своего кода). Очень удобно, когда нужно быстро (пара секунд!) глянуть на примеры использования класса или метода.

VD>Прадва на счет тоже я бы усомнился. Я вот как-то пробовал покапаться в смолтоке и быстро бросил. Так как концепции не похожи на прижившиеся в современных языках. А мучиться не хотелось.

Какие мы консервативные... Кстати, везжание в ST резко ускоряет сидящий рядом опытный смоллтокер (или книжка Кента Бека "Smalltalk best practice patterns")

VD>За то вот Шарп и Яву я освоил очень быстро и без заглядывания в мануалы.

Не верю. Шарп — и без MSDN'а, без книг, без знающего человека под рукой?
... << RSDN@Home 1.1 beta 2 >>
Re[18]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 00:07
Оценка:
Здравствуйте, FR, Вы писали:

FR>Как только понял что это такое, очень даже очевидна, я же говорю тебе мешают привычки, мне тоже мешали.

FR>Как это не сделали? Они на строки со списков и переползли.
FR>
>>>> print [0, 1, 2, 3, 4][1:3]
FR>[1, 2]
FR>


FR>
>>>> l = [0, 1, 2, 3, 4, 5]
>>>> l[1:3] = [9, 9]
>>>> print l
FR>[0, 9, 9, 3, 4, 5]
FR>


Повторяю себя (любимого ) еще раз:

До сих пор, кстати, не пойму почему они для добавления элементов к спискам не сделали аналогичный синтаксис.


То что ты привел не добавление элментов. Я про apend в ОО-стиле.

FR>Я же говорю это субъективно. Много людей которые так же утверждают что шарп на одном уровне с плюсами.

FR>Я и сам так думал, пока питон не начал изучать

Что-то я связи шапра с питоном не нуловил.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Oberon?
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 00:07
Оценка:
Здравствуйте, eugals, Вы писали:

VD>>Думаю, если сравнить компонетные возможности, то тут Питон резко проиграет.

E>Поясни, что за возможности?

Тут долго пояснять. Это и динамическая загрузка скомпилированных модулей, и интерфейсы, и рефлекшен, и дизайнеры компонентов/контролов, и генерация мсила, и интеграция с другими языками. В общем, возможность манимулирования не кодом, а готовыми бинарными модулями. Причем практически без потери производительности.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 00:07
Оценка:
Здравствуйте, Poisson, Вы писали:

P>Все далеко не всегда работают на лучшем, на правда ли?


Правда. Есть народ пишуший на Смолтоке.

P> Вон сколько языков существует, наверное хоть какой-то из них -- лучший, по пишут-то все на разных языках...


Да основная масса пишет на паре-тройке типов языков которые практически идентичны с точки зрения парадигмы.

VD>>Предлагая (ну, так для разнообразия) открыть современную стреду вроде VS, Эклипса или Идеи и поглядеть как обстаят дела с пониманием кода в них. Уверю, что будет очень интересно. И окажется, что языки вроде Явы и Шарпа тоже можно успешно изучат без документации.

P>Это менее удобно.

А ты открой.

P> В ST я за пару кликов могу посмотреть


Сочувствую. Тяжело тебе. Нужно мышой возить, чтобы что-то увидить. В более современных средах достаточно шорткатов.

P> интефейс класса (отсортированный, между прочим, по категориям), могу за один клик посмотреть все ссылки (или все реализации) данного метода в пределах всего image'а (а не только своего кода).


Я не знаю кто такой твоей "image'а" но уверяю тебя, что проблем с просмотром связей в современных средах нет.

P> Очень удобно, когда нужно быстро (пара секунд!) глянуть на примеры использования класса или метода.


Рад за то, что такие возможности есть не только в современных средах, но и в Смолтоке.

P>Какие мы консервативные...


Вы? Несомннено.

P> Кстати, везжание в ST резко ускоряет сидящий рядом опытный смоллтокер (или книжка Кента Бека "Smalltalk best practice patterns")


Мне больше нравятся технологии в которые я могу въехать сидя дома в тишине. Вот недавно поглядел Питон... Не скзать, что слюни потекли, но въехал в него очень быстро. После беглого пробегания по книжке пожалй смогу без помощь начать писать код.

VD>>За то вот Шарп и Яву я освоил очень быстро и без заглядывания в мануалы.

P>Не верю. Шарп — и без MSDN'а, без книг, без знающего человека под рукой?

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

Еще раз повторюсь. Шарп я смотрел после С++ и Дельфи. Языки конечно разные (и сильно) но концепции то схожи. И благодоря интуитивности синтаксиса чтение мануалов не требуется. Смолток же это вещь в себе. Его принципы очнь долеки как от мэйнстрим-продуктов, так и от оптимальной реализации. Спасибо этому почтенному языку за то, что двинул всю индустрию в перед. Пусть теперь отдахнет на пенсии.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 00:07
Оценка: +1
Здравствуйте, FR, Вы писали:

FR>Вот только мне кажется что ближе к человеческому мышлению как раз большое количество синтаксических конструкций как и в естественных языках.


Я бы скзал не большое, а адекватное. Выразительные средства должны быть адекватны выражаемым мыслям.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 00:07
Оценка: +2
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Форум открыт по просьбам читателей сайта проекта


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

СГ>для обсуждения Оберона/Компонентного Паскаля/Блэкбокса как технологической платформы для современной общей системы преподавания программирования, параллельной и дополняющей систему преподавания математики. Мнения за и против, вопросы как и почему, и т.п.


СГ>Характер форума предполагает максимальную корректность высказываний: модераторы удалят без предупреждения любые сообщения с вульгарным или неуместным контентом, переходом на личности и т.п.


А высказываения "против" являются вульгарным или неуместным контентом?

И вообще, это что такая завуалированная просба пойти высказаться против всех желающих? По-моему, большинство высказавшися в этом форуме однозначно дали понять, что детей не нужно учить мертвячине вроде Оберона. Учите их современным языкам вроде Явы и Шарпа (как кстати и написано в конце первого пункта этой программы). Поверьте, эти языки ни чем не хуже Оберона, но они рельно применяются на практике, а не являются академическими изысками.

ЗЫ

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

ЗЗЫ

Почитал форум по данной ссылке... Забавно там вам тоже доказывают, что не нужно морочить Обероном голову детям. Но вы не завайтесь!
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Oberon???????????????????????????????????
От: Poisson Россия  
Дата: 24.10.04 06:04
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>>>Предлагая (ну, так для разнообразия) открыть современную стреду вроде VS, Эклипса или Идеи и поглядеть как обстаят дела с пониманием кода в них. Уверю, что будет очень интересно. И окажется, что языки вроде Явы и Шарпа тоже можно успешно изучат без документации.


P>> В ST я за пару кликов могу посмотреть

VD>Сочувствую. Тяжело тебе. Нужно мышой возить, чтобы что-то увидить. В более современных средах достаточно шорткатов.
Аккуратнее придираться надо... Как только с помощью шортката можно посмотреть, например, интерфейс произвольного класса? Имя-то его надо откуда-то взять. Тут-то мыша и поможет (хотя можно и ручками это имя ввести, конечно...)

P>> интефейс класса (отсортированный, между прочим, по категориям), могу за один клик посмотреть все ссылки (или все реализации) данного метода в пределах всего image'а (а не только своего кода).

VD>Я не знаю кто такой твоей "image'а" но уверяю тебя, что проблем с просмотром связей в современных средах нет.
Это ж как надо было на смоллток смотреть, чтобы не знать, что такое image... Это база данных кода, как системного, так и пользовательского (хотя граница весьма размытая). И результатов при присмотре связей, соответственно, получается на порядок больше, чем при использовании только пользовательского кода.

VD>Еще раз повторюсь. Шарп я смотрел после С++ и Дельфи. Языки конечно разные (и сильно) но концепции то схожи. И благодоря интуитивности синтаксиса чтение мануалов не требуется. Смолток же это вещь в себе. Его принципы очнь долеки как от мэйнстрим-продуктов,

В целом согласен. Правда не считаю это недостатком.

VD> так и от оптимальной реализации.

А вот здесь не помешает аргументация, и подробная...

VD> Спасибо этому почтенному языку за то, что двинул всю индустрию в перед. Пусть теперь отдахнет на пенсии.

Да что-то ему все неймется, бодрый такой пенсионер попался.
... << RSDN@Home 1.1 beta 2 >>
Re[12]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 06:17
Оценка:
Здравствуйте, Poisson, Вы писали:

P>Аккуратнее придираться надо... Как только с помощью шортката можно посмотреть, например, интерфейс произвольного класса? Имя-то его надо откуда-то взять. Тут-то мыша и поможет (хотя можно и ручками это имя ввести, конечно...)


Имя уже есть под курсором. Вводить ничего не нужно.

P>Это ж как надо было на смоллток смотреть, чтобы не знать, что такое image...


А вот так вот. Мне откровенно говоря совсем не охота забивать голову левой терминалогией.

P> Это база данных кода, как системного, так и пользовательского (хотя граница весьма размытая). И результатов при присмотре связей, соответственно, получается на порядок больше, чем при использовании только пользовательского кода.


Ну, давай расказвать как круто с просмотром кода в СмолТоке и как фигово в других местах. Я вот как раз только что вылез из Рефлектора. И с удовольствием тебя послушаю.

P>В целом согласен. Правда не считаю это недостатком.


Твои проблемы. А я не считаю СмолТок достойным для глубокого изучения.

VD>> так и от оптимальной реализации.

P>А вот здесь не помешает аргументация, и подробная...

Ага, чтобы поспорить насколько гипотетический джит СмолТока лучше чем реально работающий дотентеа. Как бы надоело. Восеользуйся поиском.

VD>> Спасибо этому почтенному языку за то, что двинул всю индустрию в перед. Пусть теперь отдахнет на пенсии.

P>Да что-то ему все неймется, бодрый такой пенсионер попался.

Ну, так есть одно хорошее правило. Если хочется работать, ляг поспи и все пройдет.

В общем, не думаю что тема СмолТока требует очередного подъема.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Oberon???????????????????????????????????
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 24.10.04 08:44
Оценка: +2
Здравствуйте, VladD2, Вы писали:

VD>Еще раз повторюсь. Шарп я смотрел после С++ и Дельфи. Языки конечно разные (и сильно) но концепции то схожи. И благодоря интуитивности синтаксиса чтение мануалов не требуется. Смолток же это вещь в себе. Его принципы очнь долеки как от мэйнстрим-продуктов, так и от оптимальной реализации. Спасибо этому почтенному языку за то, что двинул всю индустрию в перед. Пусть теперь отдахнет на пенсии.

Ну, Влад, просто имхо дело в том, что при разработке C# были вложены нехилые бабки именно в то, чтобы ты сел за него, и практически без книжек в него вьехал. Это не случайность, это просто полное понимание разработчиками языка потребностей своей аудитории. А смоллток разрабатывался не заради аудитории, а заради возможностей. Кстати, его принципы ты поминаешь совершенно зря. Некоторые вещи, от которых ты сейчас так плюешься, перекочуют в С# в самом ближайшем будущем. Как там у нас на Старшей речи было?
1 to: 10 do: [:each | Transcript show: each]


Ага. Давайте переведем на C#:
Transcript = new TextCollector();
foreach(int each in Range(1, 10))
{
  Transcript.Show(each);
}

Это мы предположили, что Range возвращает IEnumerable.
Или даже так:
Transcript = new TextCollector();
Range(1, 10).Do(delegate(int each) { Transcript.Show(each); });

Я, конечно же, схитрил. Для того, чтобы получить полный аналог SmallTalk, пршлось бы добавить метод ToDo в System.Int32(как это, собственно, и сделано в SmallTalk.):
1.ToDo(10, delegate(int each) { Transcript.Show(each); });
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[19]: Oberon???????????????????????????????????
От: FR  
Дата: 24.10.04 08:49
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Повторяю себя (любимого ) еще раз:

VD>

До сих пор, кстати, не пойму почему они для добавления элементов к спискам не сделали аналогичный синтаксис.


VD>То что ты привел не добавление элментов. Я про apend в ОО-стиле.


Слушай до меня не доходит, изобрази в коде то что хотелось бы.
... << RSDN@Home 1.1.3 stable >>
Re[12]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 10:07
Оценка: :)
Здравствуйте, Sinclair, Вы писали:

S>Некоторые вещи, от которых ты сейчас так плюешься, перекочуют в С# в самом ближайшем будущем.


Не дай бог.

S>Я, конечно же, схитрил. Для того, чтобы получить полный аналог SmallTalk, пршлось бы добавить метод ToDo в System.Int32(как это, собственно, и сделано в SmallTalk.):

S>
S>1.ToDo(10, delegate(int each) { Transcript.Show(each); });
S>


Где бы нарыть смайлик плюющий через плече и рестящийся?

В общем, за такое нужно
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 10:07
Оценка:
Здравствуйте, FR, Вы писали:

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


Вопрос на чем?

Ну, нечто вроде:

int[] a = { 1, 2, 3 };
a = a + 4; // a == { 1, 2, 3, 4 }


Т.е. не
a.append(4);

а просто арифметика или еще что на списках.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Oberon???????????????????????????????????
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 24.10.04 10:39
Оценка: 13 (2) +1
Здравствуйте, VladD2, Вы писали:
VD>Не дай бог.
Поздняк метаться. C# 2.0 already came.

VD>Где бы нарыть смайлик плюющий через плече и рестящийся?


VD>В общем, за такое нужно
Помяни мои слова, Влад, через год ты сам будешь приводить подобные тексты в битвах с апологетами конкурирующих платформ
Конечно же, данный конкретный пример плох. По крайней мере нам с тобой легче читать именно
foreach(int each in Range(1, 10))
{
  Transcript.Show(each);
}

Но вот развитие идей разделения генерации последовательностей и их обработки неизбежно приводит к чему-то типа:

public void PrintNonDividable(Range r, int divisor)
{
   Print(r.Filter(delegate(int item){return (item % divisor) != 0;}));
}

Что, имхо, гораздо лучше чем
public void PrintNonDividable(Range r, int divisor)
{
  Range r2 = new Range();
  foreach(int item in r)
    {
      if ((item % divisor) != 0)
          r2.Append(item);
    }
  Print(r2);
}

И лучше по двум основным причинам:
1. Меньше строчек — меньше ошибок.
2. Можно оперировать бесконечными (или очень длинными) последовательностями значительно оптимальнее. Этот Range запросто может быть генератором, а не коллекцией. Наложение Filter на него совершенно не обязательно вынуждает немедленно получить другую коллекцию. Собственно, yield-инг результатов (возможно) начнется только на месте употребления. И все это мы имеем совершенно забесплатно.
Цена этому — обучение программистов новой конструкции — анонимным методам.
Получив в руки такой могучий инструмент, сразу хочется выкинуть все "лишнее". Ведь теперь нам собственно никакие управляющие конструкции не нужны — мы можем их эмулировать при помощи обычных методов
Что такое If как не метод, принимающий булевый делегат и два воид-делегата?
Цикл превращается в метод Apply у IEnumerable. Ну и так далее. Страшно, да?
Вот к чему приводит стремление к "нормализации"! Сахар в языке — вещь полезная .
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[17]: Oberon?
От: eugals Россия  
Дата: 24.10.04 10:55
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Тут долго пояснять.

Вряд ли во всём перечисленном у шарпа есть существенные преимущества.
Наверняка кое в чем он даже уступает.

VD> Это и динамическая загрузка скомпилированных модулей,

Без проблем. Питон динамический язык, соответственно и динамическая загрузка модулей в нем имеется. Отгрузка и перезагрузка, кстати, тоже
VD> и интерфейсы,
В питоне, как и в смолтоке, любому объекту можно послать любое сообщение. Куда уж гибче интерфейс.
VD> и рефлекшен,
Ну, тут сам б-г велел. Разве что называется по-другому (кстати, имхо, ближе к сути): интроспекшн
VD> и дизайнеры компонентов/контролов,
А что дизайнеры? Под питон еть порт всех популярных оконных (и вообще, компонентных) библиотек/технологий: PyQT, PythonNet, PyCOM, PyXPCOM, PyVCL...
Вот я, например, одним из таких приложений сейчас занимаюсь
Автор: eugals
Дата: 04.08.04

VD> и генерация мсила,
Опять же, в динамическом ЯП, это всё гораздо прозрачнее, чем Reflection.Emit.
Вот пример функции, которая генерирует новый класс (сколько раз её позовешь, столько раз и сгенерирует):
def genClass( ):
    class AClass( object):
        # member declarations
    return AClass

VD>и интеграция с другими языками.
Смотри выше. Порты есть. В том числе и в дотнет. Плюс удобное Python-Си апи, А С(++), несмотря на майкрософтовский прессрелизы, всё ещё главный мировой язык для разработки библиотек.

VD>В общем, возможность манимулирования не кодом, а готовыми бинарными модулями.

Ну, в питоне свой формат прекомпилированных файлов. Вполне себе бинарные модули. Не хуже мсильных сборок.

VD> Причем практически без потери производительности.

Вот, собственно, ключевая оговорка
Здесь да, спорить бессмысленно — шарп пока быстрее.
Зато питон гибче и лаконичнее. Плюс у него есть много других преимуществ (встроенные возможности АОП, например).
Но только какое отношение преимущество шарпа в скорости имеет к заявленным тобой "компонентным возможностям"? Имхо, второстепенное.

ЗЫЖ На хочется в очередной раз начинать на этом форуме холивар Static vs. Dynamic.
_vovin, в свое время, довольно хорошо про это написал тут. Вряд ли я смогу добавить что-то принципильно новое. А даже если и смогу, тебя всё равно не переубедить, это общеизвестно
... << RSDN@Home 1.1.4 @@subversion >>
Интерактивный режим питона
От: eugals Россия  
Дата: 24.10.04 10:55
Оценка: 27 (3) :)
Здравствуйте, VladD2, Вы писали:

VD>Еще раз. Нет проблем сделать снипит-компилятор скроющий все детали.

Питоновский интерактивный режим простым снипит-компилятором не взять.
Он вот что умеет:
>>> a = 1
>>> b = "строка"
>>> # - вот ребята, сейчас мы с вами объявили свои первые переменные
>>> # давайте посмотрим, добавились ли они в глобальную область имен:
>>> dir()
['__builtins__', '__doc__', '__name__', 'a', 'b']
>>> # - Видите! Добавились!
>>> # Обратите внимание, что кроме наших переменных в ней уже присутствовали 
>>> # несколько встроенных системных имен.
>>> # Ну, что такое __name__ и __doc__ я вам рассказывал на предыдущм занятии,
>>> # а сейчас давайте посмотрим на __builtins__ - это модуль содержащий все 
>>> # встроенные функции и переменные.
>>> # Давайте посмотрим, что он содержит:
>>> dir(__builtins__)
['ArithmeticError', 'AssertionError', 'AttributeError', 'DeprecationWarning', 'E
OFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FloatingPointEr
ror', 'FutureWarning', 'IOError', 'ImportError', 'IndentationError', 'IndexError
', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', '
None', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'Ove
rflowWarning', 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError', 'R
untimeWarning', 'StandardError', 'StopIteration', 'SyntaxError', 'SyntaxWarning'
, 'SystemError', 'SystemExit', 'TabError', 'True', 'TypeError', 'UnboundLocalErr
or', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTransla
teError', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionE
rror', '_', '__debug__', '__doc__', '__import__', '__name__', 'abs', 'apply', 'b
asestring', 'bool', 'buffer', 'callable', 'chr', 'classmethod', 'cmp', 'coerce',
 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod
', 'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float', 'getattr'
, 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'intern', '
isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'long', '
map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'quit', '
range', 'raw_input', 'reduce', 'reload', 'repr', 'round', 'setattr', 'slice', 's
taticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 'vars
', 'xrange', 'zip']
>>> # - Воо-о-от. Постепенно мы с вами изучим, что все они означают.
>>> # Начнем, пожалуй, с функции dir(), которую я только что использовал.
>>> # Давайте помотрим, что нам скажет про неё другая встроенная функция (help)
>>> help(dir)
Help on built-in function dir:

dir(...)
    dir([object]) -> list of strings

    Return an alphabetized list of names comprising (some of) the attributes
    of the given object, and of attributes reachable from it:

    No argument:  the names in the current scope.
    Module object:  the module attributes.
    Type or class object:  its attributes, and recursively the attributes of
        its bases.
    Otherwise:  its attributes, its class's attributes, and recursively the
        attributes of its class's base classes.
                
>>> # ну и т.д.
... << RSDN@Home 1.1.4 @@subversion >>
Re[21]: Oberon???????????????????????????????????
От: eugals Россия  
Дата: 24.10.04 10:56
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>
VD>int[] a = { 1, 2, 3 };
VD>a = a + 4; // a == { 1, 2, 3, 4 }
VD>


a = [1, 2, 3]
a = a + [4]
... << RSDN@Home 1.1.4 @@subversion >>
Re[14]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 11:35
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Поздняк метаться. C# 2.0 already came.


Там все не так запущено. Ну, или по крайней мере не многие еще вкурсе того, что теперь извращения можо делать еще более циничто (эстетично, в смысле).

S>Но вот развитие идей разделения генерации последовательностей и их обработки неизбежно приводит к чему-то типа:


S>
S>public void PrintNonDividable(Range r, int divisor)
S>{
S>   Print(r.Filter(delegate(int item){return (item % divisor) != 0;}));
S>}
S>

S>Что, имхо, гораздо лучше чем
S>

Ну, то не так страшно.

S>public void PrintNonDividable(Range r, int divisor)
S>{
S>  Range r2 = new Range();
S>  foreach(int item in r)
S>    {
S>      if ((item % divisor) != 0)
S>          r2.Append(item);
S>    }
S>  Print(r2);
S>}
S>

S>И лучше по двум основным причинам:
S>1. Меньше строчек — меньше ошибок.

Ну, то не так. Ошибок действительно меньше, за счет того что меньше побочных эффектов и меньше явного контроля управления. Но уж точно не из-за строчек.

S>2. Можно оперировать бесконечными (или очень длинными) последовательностями значительно оптимальнее.


К сожалению, Шарп не оптимизирован под функциональный стиль. Писать то так можно, но это будет значтельно медленнее. Да и получается несколькь более громоздко нежели в чистых ФЯ или питоне.

Однако данную задачу проще режить так:
class Program
{
    public static IEnumerable<int> NonDividable(IEnumerable<int> range, int divisor)
    {
        foreach (int item in range)
            if (item % divisor != 0)
                yield return item;
    }

    static void Main(string[] args)
    {
        foreach (int value in NonDividable(XRange(10), 2))
            Console.Write(value + " ");
    }

    #region XRange Impl
    
    static IEnumerable<int> XRange(int len)
    {
        return XRange(0, len, 1);
    }

    static IEnumerable<int> XRange(int start, int len)
    {
        return XRange(start, len, 1);
    }

    static IEnumerable<int> XRange(int start, int len, int inc)
    {
        int count = (len - start) / inc;
        for (int val = start, i = 0; i < count; i++, val += inc)
            yield return val;
    }

    #endregion
}



S> Этот Range запросто может быть генератором, а не коллекцией.


В дотнете это называется enumerable, т.е. энумератором, перечеслителем.

Но проблема в том, что это объект, а значит несколько медленнее чем лобовые for-ы с ифами. Хотя медленее чем в Питоне не будет.

Однако, любымый для функциональщиков Фибоначи в функцниональном стиле на Шарпе вылевается в полную задницу с точки зрения производительности, так как ни компилятор Шарпа, ни джит не устраняют рекурсию в таких случаях. Попробуй ради хохмы эту реализацию:
static long Fib(int n)
{
    return n < 2 ? 1 : (Fib(n - 1) + Fib(n - 2));
}
...
foreach (int value in NonDividable(XRange(10), 2))
    Console.Write(value + " ");

В Питоне кстати оптимизации тоже нет, но есть функция memoize делающая ее "врукопашную".


S> Наложение Filter на него совершенно не обязательно вынуждает немедленно получить другую коллекцию. Собственно, yield-инг результатов (возможно) начнется только на месте употребления. И все это мы имеем совершенно забесплатно.


Гы. Довольно за дорого.

S>Цена этому — обучение программистов новой конструкции — анонимным методам.


Ага. И обучение компилятора человеческой оптимизации.

S>Получив в руки такой могучий инструмент, сразу хочется выкинуть все "лишнее". Ведь теперь нам собственно никакие управляющие конструкции не нужны — мы можем их эмулировать при помощи обычных методов


Особенно забавно использовать yield return без управляющих конструкций.

S>Что такое If как не метод,


Как что? Управляющая конструкция. Вот "? x : y" — это функция. Вот только в нее yield return не воткнешь. Другая, понимаш, парадигма. И кстати, она почему-то мне очень понятна и приятна.

S> принимающий булевый делегат и два воид-делегата?


Что такое "воид-делегата"?

S>Цикл превращается в метод Apply у IEnumerable. Ну и так далее. Страшно, да?


Страшно, что попади это дело в руки орлам вроде тех что писали СТЛ и выйдет СТЛ.

S>Вот к чему приводит стремление к "нормализации"! Сахар в языке — вещь полезная .


Я не сказал бы, что делегаты — это сахар. А анонимные методы логическое их развитие. Жать только что без соотвествующей оптимизации применение данных фич негативно скажется на производительности.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Мэйнстрим vs. Самосовершенствование :)))
От: Зверёк Харьковский  
Дата: 24.10.04 11:51
Оценка: 12 (1) +4
Здравствуйте, VladD2, Вы писали:

VD>Оберон — это мертвях. Учить ему будущих программистов все равно что учить латыни будущих переводчиков. Неужели нехватает живых языков? Чем та же Ява или Шарп хуже?


Дорогой Влад!

"Я тебе один умный вещь скажу, только ты не обижайся" (с) мой папа.

Наблюдаю я уже который день за этой дискуссией вокруг Оберона-СмолТолка-Питона-и др. и возникло у меня такое впечатление.
Имхо, ты везде приводишь более-менее верные и логичные аргументы, но не прав в главной своей мысли: "Все пишут на Яве и Шарпе, поэтому учить больше ничего не надо".
Я считаю, что изучение других языков программирования идет не в минус (забиваем голову ненужной информацией), а в плюс. И не потому, что СмолТолк кому-то может пригодиться (ой, сумлеваюсь), а по очень простой причине: расширение кругозора. Просто понять, что "и такое бывает". Подцепить полезный метод или идею. В конце концов (в парадигме начального вопроса Валерия Викторовича) — просто осознать, "что не в любом языке программирования есть фигурные скобки".

Возьмем, например, меня .
В контексте давнего спора про то, какой язык кому нравится, могу слегка скорректировать свое тогдашнее мнение: "я люблю С++ и пока это возможно, буду писать только на нем", но сейчас собираюсь покупать Рихтера про Шарп. Не потому, что хочу на него перейти — интересно, что нового, чем он отличается; как нужно "думать на Шарпе". А и кроме того, книжки, которые валяются на винте, и которые я уже изучил или собираюсь в ближайшем будушем, посвящены языкам: Ada, Assembler, Awk, C--, C++, C#, Delphi, Eiffel, Euphoria, Forth, Go!, Haskell, Java, Lisp, OCaml, Oz, Perl, PHP, Prolog, Python, Refal, Small, Smalltalk, Tcl, VB.

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

Во. Типа dixi.
FAQ — це мiй ай-кью!
Re[22]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 12:32
Оценка:
Здравствуйте, eugals, Вы писали:

E>
E>a = [1, 2, 3]
E>a = a + [4]
E>


Это не то. То получается только через append . А тут на лицо склеивание списков. К тому же похоже в результате получается третий список ссылка на который попадает в a. Хотя это уже другой вопрос.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Oberon?
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 12:32
Оценка:
Здравствуйте, eugals, Вы писали:

E>Без проблем. Питон динамический язык,


А Шарп статический. От того и быстрый кода порождает. Но при этом с компонентами все ОК.

E> соответственно и динамическая загрузка модулей в нем имеется. Отгрузка и перезагрузка, кстати, тоже


Вот тут бы я не радовался. Поле для ошибок. Переприсвоил имя и все поехало. Переменные не объявляются, а значит их можно создавать случайно. Они не типизированны, а нзначит тормоза. Это уже не компонентность, а интерпретируемость получается.

VD>> и интерфейсы,

E>В питоне, как и в смолтоке, любому объекту можно послать любое сообщение. Куда уж гибче интерфейс.

Ну, ОО в питое как раз мне совсем не понравилось. Странности на каждом шагу.
Что до гибкости... Везде нужен баланс. Без разумного подхода гибкость превращается в тормоза и баги. С твоими любимыми сообщениями большое приложение рассыпится от рантаймных багов. Интерфеейсы — это это средство выделения абстракции. Они не гибкие, и не жесткие. И их отсуствие — это большой минус для языка претендующего на звание ООЯ.

Забавно так же отсутствие модификаторов доступа (видимости). Все паблик, и все виртуальное. Во, блин, решение. Ни надежности, ни скорости. За-то забавнейшие конструкции вроде self в параметрах.

VD>> и дизайнеры компонентов/контролов,

E>А что дизайнеры?

Вот и я о том же. Компоненты типа есть. А что такое дизайнеры для них не знаем.

E> Под питон еть порт всех популярных оконных (и вообще, компонентных) библиотек/технологий: PyQT, PythonNet, PyCOM, PyXPCOM, PyVCL...


Во-во. Порт недо-технологий перехивших свой век. Зачем же нужены порты полноценному компонетному языку? Вот в дотнете все компонетны (вместе с компонетной моделью) написаны на Шарпе. И вписываются в среду и рантайм как будто они там всю жизнь были.

E>Вот я, например, одним из таких приложений сейчас занимаюсь
Автор: eugals
Дата: 04.08.04


Забавно. Ну, значит должен понимать сколько кода нуно докрутить к чистому Питону, чтобы с ним работать в компонентном стиле. А в дотнете все уже есть. И твой дизайнер делается за пару часов.

VD>> и генерация мсила,

E>Опять же, в динамическом ЯП, это всё гораздо прозрачнее, чем Reflection.Emit.

Еще раз. Прозрачность должна еще должна быть зачем-то нужна. Если я получаю в 10 раз блее медленное решение, то уж лучше я обойдусь менее прозрачным.


VD>>и интеграция с другими языками.

E>Смотри выше. Порты есть.

Нафиг порты? Нужно чтобы подключил модуль на другом языке и пльзуйся типами. Причем опять таки чтобы это не превратилось в пошаговую стратегию.

E> В том числе и в дотнет.


Гы. Питон в дотнете — это уже дотнет. Далее от питона просто ничего не требуется. Ну, разве что мало мальски прилично код сгенерировать.

E> Плюс удобное Python-Си апи, А С(++), несмотря на майкрософтовский прессрелизы, всё ещё главный мировой язык для разработки библиотек.


Да? И какие ты библиотеки на С++ знаешь? А на счет удобства. Что может быть удбонее чем просто использование в одном проекте длл-ек написанных на разных языках?

VD>>В общем, возможность манимулирования не кодом, а готовыми бинарными модулями.

E>Ну, в питоне свой формат прекомпилированных файлов. Вполне себе бинарные модули. Не хуже мсильных сборок.

На склько я знаю каждая версия Питона имеет отличный формат и по этому бинарниками никто не поьзуется. Более того они вроде не обязательны. Не создался и ладно...

VD>> Причем практически без потери производительности.

E>Вот, собственно, ключевая оговорка

Дык она даже не ключевая. Она базовая предпосылка. Т.е. дивиз такой, просто, просто насколько это можно, но не более просто чем нужно для получения производительного кода.

E>Здесь да, спорить бессмысленно — шарп пока быстрее.


Покая? Шарпу 2 года. И с каждым годом он становится все быстрее и быстрее. Думаю, ко времени когда МС начнет массовый выпуск продуктов на дотнете они доведут джит и пре джит до уровня своих С++-ных компиляторов (которые у них одни из самых лучших).

E>Зато питон гибче и лаконичнее.


Ну, да экономим на объявлениях типов, перменных, и т.п. В итоге получаем багодром. Гибкость должна иметь разумные пределы. Как и контроль. Баланс, вот что важно. Нужна и скорость кодирования, и скорость получаемого кода, и гибкость, и контроль. Собственно именно разумное сочетание ингридиенов и порождает в итоге конечный продукт.

Надо признать, что питон тоже делает шаги в пред. Как я понял его создатили уже избавились от маразматичного отсуствия вложенных уровней видимости. Осталось выбросить статические параметры, добавять обязательное объявление переменных, типизацию, улучшить ООП, ублрать некторые виды неявных приведений и глядишь получится универсальный язык общего применения поддерживающий множество парадигм. Думаю, такой бы язык затмил бы все на своем пути (особенно если при все при этом его компиляторы порождали бы шустрый код). Но это мечта об идиале. А он, как известно, не достижим.

E> Плюс у него есть много других преимуществ (встроенные возможности АОП, например).


Вот об этом интересно было бы послешать по подробнее.

E>Но только какое отношение преимущество шарпа в скорости имеет к заявленным тобой "компонентным возможностям"? Имхо, второстепенное.


Гы. А кому нужны игрушки? Если собранное из компонентов ПО рассыпится или будет напоминать пошаговую стратегию, то пользователь пошлет такой софт к черту и будет пользоваться глючным С++-ным.

E>ЗЫЖ На хочется в очередной раз начинать на этом форуме холивар Static vs. Dynamic.


Да уж. Не стоит. Практика давно показала что они явно не в пользу динамиков.

E>_vovin, в свое время, довольно хорошо про это написал тут. Вряд ли я смогу добавить что-то принципильно новое. А даже если и смогу, тебя всё равно не переубедить, это общеизвестно


А не надо меня убеждать. Ты факты приводи. Пока что скриптовые языки живут в нише "веб-страничек по демпинговым ценам". А за типизированные платят нехилые деньги. Причем спрос на программистов знающих С++, Дельфи, Шарп, Яву намного больше чем предложение. Почти весь коммерческий софт написан на этих языках. Скрпты там в роли скриптов только и присуствуют. Ну, а зачем нужны скрпты если есть языки мало им в чем уступающие, но при этом не скрипты?
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[19]: Oberon?
От: Зверёк Харьковский  
Дата: 24.10.04 12:40
Оценка:
Влад, я тут тебе спаслание написал, а ты не видишь
http://rsdn.ru/Forum/Message.aspx?mid=865856&amp;only=1
Автор: Зверёк Харьковский
Дата: 24.10.04
FAQ — це мiй ай-кью!
Re[3]: Мэйнстрим vs. Самосовершенствование :)))
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 13:15
Оценка: +2
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Имхо, ты везде приводишь более-менее верные и логичные аргументы, но не прав в главной своей мысли: "Все пишут на Яве и Шарпе, поэтому учить больше ничего не надо".


Ну, это сильно извращенное понимание моих мыслей. Я не говорил о том, что учить больше ничего не надо. Более того. Я даже за то, чтобы учить больше. Я считаю, что человек знающий всего один язык программирования не имеет права называться программистом. Ну, или автоматически приравнивается к ламеру (если он конечно не в самом начале пути).

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

Однако я совершенно не понимаю зачем начинать учить детей с экзотики вроде СмолТока или с мертвячины вроде Оберона. Если человеку будет интересно, он этот Оберон и сам выучит. Ну, а не хватит времени или усидчивости, так и фиг с ним. А так получится, что человек выучит оберон, прийдет на работу, а там: С++, Ява, Дельфи, Шарп и т.п. Хочешь не хочешь, а прийдется переучиваться. Причем именно переучиваться, так как Вирт принципиально навязывает свои "привычки". Даже в Дельфи и Васике появился оператор "ретон". А у Вирта свой взгляд на мир. Он учит if-ы вкладывать. Причем начиная учить детей на Обероне им в первую очередь навязывают стиль, а не объясняют принципы построения грамотного кода. В итоге получим зазубрышей резко отвергающих то все промышленные языки и не знакомых банальными понятиями вроде абстракции, наследования, полиморфизма.

ЗХ>Я считаю, что изучение других языков программирования идет не в минус (забиваем голову ненужной информацией), а в плюс. И не потому, что СмолТолк кому-то может пригодиться (ой, сумлеваюсь), а по очень простой причине: расширение кругозора. Просто понять, что "и такое бывает". Подцепить полезный метод или идею. В конце концов (в парадигме начального вопроса Валерия Викторовича) — просто осознать, "что не в любом языке программирования есть фигурные скобки".


Согласен. Но пусть это будет факультативной задачей. А в качестве первого языка пусть будет нечто хорошо спроектированное, но промышленное.

ЗХ>Возьмем, например, меня .

ЗХ>В контексте давнего спора про то, какой язык кому нравится, могу слегка скорректировать свое тогдашнее мнение: "я люблю С++ и пока это возможно, буду писать только на нем", но сейчас собираюсь покупать Рихтера про Шарп. Не потому, что хочу на него перейти — интересно, что нового, чем он отличается; как нужно "думать на Шарпе". А и кроме того, книжки, которые валяются на винте, и которые я уже изучил или собираюсь в ближайшем будушем, посвящены языкам: Ada, Assembler, Awk, C--, C++, C#, Delphi, Eiffel, Euphoria, Forth, Go!, Haskell, Java, Lisp, OCaml, Oz, Perl, PHP, Prolog, Python, Refal, Small, Smalltalk, Tcl, VB.

Здорово. На винтах у меня правда тоже валяется черти что. Но о некоторых языках я даже не слышал. Например, что такое Refal и Go! я не знаю.

Кстати, очень хороший списак. Как по твоему Оберон и СмолТок заслуживают больщего внимания чем все перечисленные тобой тут языки?

Вот по-моему нет. Вот я и предлагая в качестве первого языка выбрать один из языков мэйнстрима, а потом уже приступать к изучению всего остального. Я даже считаю, что здорово было бы изучать параллельно языки имеющие разные парадигмы. Тогда возможно было бы можно избежать ломки понимания.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: Oberon?
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.10.04 13:29
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Влад, я тут тебе спаслание написал, а ты не видишь

ЗХ>http://rsdn.ru/Forum/Message.aspx?mid=865856&amp;only=1
Автор: Зверёк Харьковский
Дата: 24.10.04


Ну, я же не всевидящий. А вообще, пора завязывать на сегодня. И так пол дня убил на философию.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Мэйнстрим vs. Самосовершенствование :)))
От: prVovik Россия  
Дата: 24.10.04 14:00
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Однако я совершенно не понимаю зачем начинать учить детей с экзотики вроде СмолТока или с мертвячины вроде Оберона.

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


VD>Вот по-моему нет. Вот я и предлагая в качестве первого языка выбрать один из языков мэйнстрима, а потом уже приступать к изучению всего остального.

Проблема мэйнстрима в том, что он все время меняется. И важно сделать так, чтобы студенты не зацикливались на нем. А если вдалбливать мэйнстриме с "самого раннего детства", то, возможно, студент и зациклится. Хотя,

P.S.: разговаривать мы тут можем сколько угодно, но проблема в том, что наш разговор похож на обсуждение красоты заката среди слепых. Выбирать язык для начального обучения программированию должен профессиональный преподаватель с хорошим опытом преподавания. Ему виднее.
... << RSDN@Home 1.1.4 @@subversion >>
лэт ми спик фром май харт
Re[4]: Мэйнстрим vs. Самосовершенствование :)))
От: Зверёк Харьковский  
Дата: 24.10.04 14:28
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Зверёк Харьковский, Вы писали:


ЗХ>>Имхо, ты везде приводишь более-менее верные и логичные аргументы, но не прав в главной своей мысли: "Все пишут на Яве и Шарпе, поэтому учить больше ничего не надо".


VD>Ну, это сильно извращенное понимание моих мыслей. Я не говорил о том, что учить больше ничего не надо. Более того. Я даже за то, чтобы учить больше. Я считаю, что человек знающий всего один язык программирования не имеет права называться программистом. Ну, или автоматически приравнивается к ламеру (если он конечно не в самом начале пути).



VD>Более того. Я вот с удовольствием познакомился с Питомном. В отличии от того же СмолТока или Окамла он на меня произвел очень хорошее впечатление (хотя и без огорчений не обошлось). Интересный язык, хорошо поддерживающий разные парадигмы. Если бы не его наплевательство на типы и несколько странное видение ООП, я бы пожалуй согласился с тем, что этот язык был бы очень хорошим кандидатом на превый язык программиста.


VD>Однако я совершенно не понимаю зачем начинать учить детей с экзотики вроде СмолТока или с мертвячины вроде Оберона.

Тут, конечно, ВВ виднее, я ж не преподаватель...
Но в свое время Паскаль и был языком "для учебы" == идеальная чистота концепции + полная непригодность для промышленного использования.
То есть я, кажется, повторяю мысль prVovik в этой же ветке
УАЯ кто-нить помнит? Условный Алгоритмический Язык....

VD>Причем начиная учить детей на Обероне им в первую очередь навязывают стиль, а не объясняют принципы построения грамотного кода.

Сугубый имх: место стройного академического языка — там же, где помянутого мной УАЯ: объяснить человеку, только вчера увидевшему компьютер, что такое условие, цикл, подпрограмма, переменная etc.
При обучении проектированию — уже надо знать "нормальный язык".

ЗХ>>Я считаю, что изучение других языков программирования идет не в минус (забиваем голову ненужной информацией), а в плюс. И не потому, что СмолТолк кому-то может пригодиться (ой, сумлеваюсь), а по очень простой причине: расширение кругозора. Просто понять, что "и такое бывает". Подцепить полезный метод или идею. В конце концов (в парадигме начального вопроса Валерия Викторовича) — просто осознать, "что не в любом языке программирования есть фигурные скобки".


VD>Согласен. Но пусть это будет факультативной задачей. А в качестве первого языка пусть будет нечто хорошо спроектированное, но промышленное.

См. выше

ЗХ>>Возьмем, например, меня .

ЗХ>>В контексте давнего спора про то, какой язык кому нравится, могу слегка скорректировать свое тогдашнее мнение: "я люблю С++ и пока это возможно, буду писать только на нем", но сейчас собираюсь покупать Рихтера про Шарп. Не потому, что хочу на него перейти — интересно, что нового, чем он отличается; как нужно "думать на Шарпе". А и кроме того, книжки, которые валяются на винте, и которые я уже изучил или собираюсь в ближайшем будушем, посвящены языкам: Ada, Assembler, Awk, C--, C++, C#, Delphi, Eiffel, Euphoria, Forth, Go!, Haskell, Java, Lisp, OCaml, Oz, Perl, PHP, Prolog, Python, Refal, Small, Smalltalk, Tcl, VB.

VD>Здорово. На винтах у меня правда тоже валяется черти что. Но о некоторых языках я даже не слышал. Например, что такое Refal и Go! я не знаю.


Рефал сделали русские. Это, вроде как, функциональный язык...

Рефал — язык манипулирования символьными объектами: текстами, формулами, программами и т.п. Программа на Рефале состоит из функций, которые могут определяться друг через друга, т.е. рекурсивно. Отсюда и название: АЛгоритмический язык РЕкурсивных Функций.
Язык Рефал был создан В. Турчиным [Тур 66] в качестве метаязыка для описания семантики других языков. Впоследствии, в результате появления достаточно эффективных реализаций на ЭВМ он стал находить практическое использование в качестве языка программирования.


Go! — язык, заточенный под программирование агентов.


VD>Как по твоему Оберон и СмолТок заслуживают больщего внимания чем все перечисленные тобой тут языки?

СмолТок — воистину. Именно за счет того, что сильно отличается от всего остального. Просто для раздвижения, так скзть, горизонтов. Но учить его первым — по-моему, искалечить восприятие.
Оберон (пока Губанов не слышит) — полнейшее, на мой вкус, занудство. Его изучение как первого языка еще может быть оправдано теми факторами, о которых я уже сказал. Как второго (третьего...) не даст в смысле мировоззрения абсолютно ничего.
Сугубая, разумеется, имха.
FAQ — це мiй ай-кью!
Re[18]: Oberon?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.10.04 14:33
Оценка: +1
Здравствуйте, eugals, Вы писали:

E>Зато питон гибче и лаконичнее. Плюс у него есть много других преимуществ (встроенные возможности АОП, например).


В дотнет тоже есть встроенный АОП — Transparent Proxy. Знаешь в чем проблема? В производительности этого решения.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
AVK Blog
Re[19]: Oberon?
От: eugals Россия  
Дата: 24.10.04 18:01
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD> С твоими любимыми сообщениями большое приложение рассыпится от рантаймных багов.

Пока ещё у меня ни одно не "рассыпалось".

VD>Забавно так же отсутствие модификаторов доступа (видимости). Все паблик, и все виртуальное. Во, блин, решение. Ни надежности, ни скорости.

В питоне есть несколько более или менее эффективных способов "прятать" переменные.
Фанаты приватности могут спать спокойно.
Естественно всё виртуальное, раз язык динамический. Ты в каждом абзаце про это напоминаешь .

E>> Под питон еть порт всех популярных оконных (и вообще, компонентных) библиотек/технологий: PyQT, PythonNet, PyCOM, PyXPCOM, PyVCL...

VD>Во-во. Порт недо-технологий перехивших свой век.
Ты сказал, что в питоне нет дизайнеров компонентов. Я ответил, что есть — в тех самых компонентных технологиях PyQT, PyCOM-е и т.д.
Что же касается утверждения, что QT и .NET "пережили свой век", то тебе конечно видней, но меня лично и такое старьё устраивает пока

E>>Вот я, например, одним из таких приложений сейчас занимаюсь
Автор: eugals
Дата: 04.08.04

VD>Забавно. Ну, значит должен понимать сколько кода нуно докрутить к чистому Питону, чтобы с ним работать в компонентном стиле.
Не много. В том и прелесть питона, что в нем такие "докручивания" делаются на раз.

VD>Еще раз. Прозрачность должна еще должна быть зачем-то нужна. Если я получаю в 10 раз блее медленное решение, то уж лучше я обойдусь менее прозрачным.

Не в десять.
Тут недавно пробегало сравнение реализации решета эратосфена на Clean-е и C++.
Вот пример на питоне:
from time  import time
from array import array

def test( size):
    arr = array( "b", "\1" * size)
    arr[ 0] = 0
    for i, val in enumerate( arr):
        if val:
            for j in xrange( i + i, size, i):
                arr[ j] = 0
    arr[ 0] = 1
        
tm = time()
test( 100000000)
tm = time() - tm
print tm

Разница с вариантам WolfHound-а у меня была примерно в 3 раза.
Вполне терпимо, для интерпретатора. Наверное можно было бы сократить отставание до двух или даже полуторакратного, если слегка подправить питоновские библиотеки array и itertools. В принципе, ничто не мешает мне, при необходимости, ввести PEP (Python Enchancement Proposal) на этот счет — отцы питона вполне либеральны в отношении таких предложений.
Хотя решето эратосфена, мягко говоря, не самая типичная задача. В GUI, например, всё равно все события через очередь окна пропускаются, питон здесь не будет узким местом (знаю — пробовал).
Вообще, такие сверхтребовательные к ресурсам алгоритмы составляют всё меньший и меньший процент от текущих проблем.
Если мне нужна быстрая метематическая библиотека, то я не буду писать на питоне или шарпе свою, а возьму интеловскую MKL. Нужен универсальный парсер — ANTLR или Бизон или Кока, твой любимый. XML — expat или xerces-c. 3D — OpenGL и т.д.

E>> Плюс удобное Python-Си апи, А С(++), несмотря на майкрософтовский прессрелизы, всё ещё главный мировой язык для разработки библиотек.

VD>Да? И какие ты библиотеки на С++ знаешь?
Да любые необходимые. Парсеры, Средства доступа к БД, Графические библиотеки, Всякие сетевые клиенты/серверы...

VD> А на счет удобства. Что может быть удбонее чем просто использование в одном проекте длл-ек написанных на разных языках?

Вот именно. В конце концов, на мсиле свет клином не сошелся. Нейтив-код это такой же универсальный язык. Более низкоуровневый, ну и фиг с ним, работает ведь.

VD>>>В общем, возможность манимулирования не кодом, а готовыми бинарными модулями.

E>>Ну, в питоне свой формат прекомпилированных файлов. Вполне себе бинарные модули. Не хуже мсильных сборок.
VD>На склько я знаю каждая версия Питона имеет отличный формат и по этому бинарниками никто не поьзуется.
Это да. Не то чтобы совсем уж несовместимы, но лучше пикод от разных версий не использовать . Хотя не знаю, может в 2.4 по этому поводу что-нибудь уже и придумали
VD> Более того они вроде не обязательны. Не создался и ладно...
Не. Если нужен — создастся.

VD>Дык она даже не ключевая. Она базовая предпосылка. Т.е. дивиз такой, просто, просто насколько это можно, но не более просто чем нужно для получения производительного кода.

Само собой. Если бы питон не устраивал нас по производительности, мы бы его не использовали. Устраивает.

E>>Здесь да, спорить бессмысленно — шарп пока быстрее.

VD>Покая? Шарпу 2 года. И с каждым годом он становится все быстрее и быстрее. Думаю, ко времени когда МС начнет массовый выпуск продуктов на дотнете они доведут джит и пре джит до уровня своих С++-ных компиляторов (которые у них одни из самых лучших).
Ну догонит он, а дальше что? Правильно — упрется в железо и остановится.
А скорость питона растет от версии к версии. Не так быстро как хотелось бы, но растет ведь. И потолок тот же — железо.

E>>Зато питон гибче и лаконичнее.

VD>Ну, да экономим на объявлениях типов, перменных, и т.п. В итоге получаем багодром. Гибкость должна иметь разумные пределы. Как и контроль. Баланс, вот что важно. Нужна и скорость кодирования, и скорость получаемого кода, и гибкость, и контроль. Собственно именно разумное сочетание ингридиенов и порождает в итоге конечный продукт.
Ну, тут не поспоришь

VD>Надо признать, что питон тоже делает шаги в пред. Как я понял его создатили уже избавились от маразматичного отсуствия вложенных уровней видимости.

VD>Осталось выбросить статические параметры,
Это что?
VD>добавять обязательное объявление переменных
Обязательное не нужно. Опциональное — может быть. Чтобы можно было оптимизнуть ( или "констрейнтнуть") "по месту".
VD>Думаю, такой бы язык затмил бы все на своем пути (особенно если при все при этом его компиляторы порождали бы шустрый код). Но это мечта об идиале. А он, как известно, не достижим.
Ну вот, а как же шарп???

E>> Плюс у него есть много других преимуществ (встроенные возможности АОП, например).

VD>Вот об этом интересно было бы послешать по подробнее.
Почитай про метаклассы.
Если вкратце, то вот пример, как можно единообразно сделать журналирование вызовов любых методов конкретного класса, а также всех его наследников:
def createLoggingProxyFor( func):
    def logging_proxy( *args, **kwargs):
        func( *args, **kwargs)
        print "%s called" % func
    print "replacing %s by %s" % ( func, logging_proxy)
    return logging_proxy

class LoggingMetaClass( type):
    """ Метакласс, создающий журналирующую обертку вокруг всех методов своих классов
    """
    def __init__( cls, name, bases, dct):
        type.__init__( cls, name, bases, dct)
        for name, val in dct.iteritems():
            if callable( val) and val != LoggingMetaClass:
                setattr( cls, name, createLoggingProxyFor( val))

class Test( object):
    __metaclass__ = LoggingMetaClass
    
    def foo( self):
        print "foo"

    def bar( self):
        print "bar"

print "starting test"
t = Test()
print "calling foo"
t.foo()
print "calling bar"
t.bar()

Кстати, с помошью метаклассов, можно прикрутить к методам и проверку типов передаваемых в них параметров (и вообще, пред- и постусловий).
Особенно после того, как в Python 2.4 появились атрибуты (декораторы), навроде шарповских (вообще, они и раньше типа были, но не такие удобные).

E>>Но только какое отношение преимущество шарпа в скорости имеет к заявленным тобой "компонентным возможностям"? Имхо, второстепенное.

VD>Гы. А кому нужны игрушки? Если собранное из компонентов ПО рассыпится или будет напоминать пошаговую стратегию, то пользователь пошлет такой софт к черту и будет пользоваться глючным С++-ным.
Не рассыпается. Стратегию не напоминает. Пользователи не посылают.
... << RSDN@Home 1.1.4 @@subversion >>
Re[11]: Oberon???????????????????????????????????
От: eugals Россия  
Дата: 25.10.04 06:40
Оценка: 30 (2)
Здравствуйте, VladD2, Вы писали:

VD>Сам шарп почити без гаглядывания. Описание классов и методов конечно приходилось смотреть. Ну, разные редко используемые аспекты вроде синтаксиса операторов пришлось подсмотреть. Но со Смолтоком не сравнить. В гем я несколько часов к ряду смотрел на среду как баран на новые ворота, так ничего и не понял.

Это да . К счастью, у _vovin-а на сайте есть пара интересных howto по Dolphin-у: Dolphin Smalltalk, Part I и Dolphin Smalltalk, Part I.
Очень помогают от барановоротного эффекта
... << RSDN@Home 1.1.4 beta 2 >>
Re[6]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 25.10.04 07:58
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>...При этом Оберон не имеет какх-то существенных приемуществ при обучении...


А вот, компетентные в этом вопросе люди утверждают обратное. Ссылки я уже приводил.
Re[4]: Мэйнстрим vs. Самосовершенствование :)))
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 25.10.04 08:07
Оценка: -2
Здравствуйте, VladD2, Вы писали:

VD>.....появился оператор "ретон". А у Вирта свой взгляд на мир. Он учит if-ы вкладывать.


Любой человек хоть немного знакомый с оберонами, не говоря уже о компетентных в этих вопросах людях, знает, что для выходя из процедуры в оберонах используется именно тот самый оператор RETURN. А вот, Вы об этом до сих пор не знаете, а еще чего-то против высказываете.


VD>.....Причем начиная учить детей на Обероне им в первую очередь навязывают стиль, а не объясняют принципы построения грамотного кода....


А вот компетентные в этом вопросе люди утверждают обратное. Ссылки я уже неоднократно приводил.
Re[5]: Мэйнстрим vs. Самосовершенствование :)))
От: Курилка Россия http://kirya.narod.ru/
Дата: 25.10.04 08:09
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, VladD2, Вы писали:


VD>>.....появился оператор "ретон". А у Вирта свой взгляд на мир. Он учит if-ы вкладывать.


СГ>Любой человек хоть немного знакомый с оберонами, не говоря уже о компетентных в этих вопросах людях, знает, что для выходя из процедуры в оберонах используется именно тот самый оператор RETURN. А вот, Вы об этом до сих пор не знаете, а еще чего-то против высказываете.



VD>>.....Причем начиная учить детей на Обероне им в первую очередь навязывают стиль, а не объясняют принципы построения грамотного кода....


СГ>А вот компетентные в этом вопросе люди утверждают обратное. Ссылки я уже неоднократно приводил.


Сергей, это уже выглядит далеко не корректно про компетентных
Если у тебя нет аргументов так и скажи, а нехрен посылать столько раз всех.
Re[3]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 25.10.04 08:11
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А высказываения "против" являются вульгарным или неуместным контентом?


Смотря в какой форме Вы их будете там излагать и какие аргуиенты приводить.
Re[6]: Мэйнстрим vs. Самосовершенствование :)))
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 25.10.04 08:18
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Сергей, это уже выглядит далеко не корректно про компетентных

К>Если у тебя нет аргументов так и скажи, а нехрен посылать столько раз всех.

А RETURN — это уже не аргумент? Человек заявил что у Вирт что-то имеет против RETURN, а вот то что во всех оберонах этот RETURN всегда был, этот человек не вкурсе. И это называется у меня нет аргументов?
Re[7]: Мэйнстрим vs. Самосовершенствование :)))
От: Курилка Россия http://kirya.narod.ru/
Дата: 25.10.04 08:20
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, Курилка, Вы писали:


К>>Сергей, это уже выглядит далеко не корректно про компетентных

К>>Если у тебя нет аргументов так и скажи, а нехрен посылать столько раз всех.

СГ>А RETURN — это уже не аргумент? Человек заявил что у Вирт что-то имеет против RETURN, а вот то что во всех оберонах этот RETURN всегда был, этот человек не вкурсе. И это называется у меня нет аргументов?


То, что ты делаешь упор на компетентных, говорит о том, что нормальные аргументы у тебя заканчиваются...
Re[8]: Oberon???????????????????????????????????
От: Kluev  
Дата: 25.10.04 08:44
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Kluev, Вы писали:


K>>Чем отличается? тем что как уже было сказано:

K>>>>Выполняется прямо в командной строке без компиляции, написания функции и т.п.

VD>Это не приемущество. Во-первых, это на фиг не упало. А, во-вторых, создать утититку эмулирующую командрую строку задача на вечер.


Такую как в питоне? Задачка на вечер? Извини, но ты насмешил мои тапочки. Скачай питоновскую среду (IDLE) и тогда сам поймешь, что для обучения вряд ли можно найти что-то лучшее.
Re[5]: Мэйнстрим vs. Самосовершенствование :)))
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 15:42
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Тут, конечно, ВВ виднее, я ж не преподаватель...

ЗХ>Но в свое время Паскаль и был языком "для учебы" == идеальная чистота концепции + полная непригодность для промышленного использования.

Ну, почему же не пригодность? У Паскаля есть работоспособное развите — Дельфи. Вот только результатом такой приверженности Паскалю явилось, то что появилась целая плияда ламеров непонимающих в программировании как таковом за-то знающих синтаксис Паскаля и потому выбирающих Дельфи. Вот только Дельфи — это современный ООЯ. Пусть не очень качественно споектированный, но все же современный. И его тоже нужно уметь использовать. Но наши преподаватели остановились на голом Паскале. В итоге "программист" осваивает работу с дизайнером форм, даблкликает по кнопки и фигачит там код на том самом Пасклае. Все! На большее он не способен. Хотя нет... еще при появлении какой-нибудь не тривиальной задачи он лезет в Интернет и спрашивает "А где надыбать хомпонент ХХХ для решения задачи УУУ?".

ЗХ>То есть я, кажется, повторяю мысль prVovik в этой же ветке

ЗХ>УАЯ кто-нить помнит? Условный Алгоритмический Язык....

Нафиг условности не нужны. Учить нужно принципам программирования. И в принципе пофигу на чем учить. Но уж если пофигу, то почему бы не учить на том, что может с большой вероятностью быть востребовано, а не на мертвяке?

ЗХ>Сугубый имх: место стройного академического языка — там же, где помянутого мной УАЯ: объяснить человеку, только вчера увидевшему компьютер, что такое условие, цикл, подпрограмма, переменная etc.

ЗХ>При обучении проектированию — уже надо знать "нормальный язык".

Вот и не нужно объяснять это на "выдуманных" язвках. Объясняйте это на вымученных языках. Современные ЯП являются такими какми они являются от того, что в них вложен опыт реального программирования на многих предшествующих языках. Ну, не просто так в Яве и Шарпе остались continue и есть return. Та же Дельфи и Васик долго жили без них, но в итоге и в них были добавлены эти конструкции. Вред этих конструкций высасан из пальца.

ЗХ>Go! — язык, заточенный под программирование агентов.


Киборги?

ЗХ>СмолТок — воистину. Именно за счет того, что сильно отличается от всего остального. Просто для раздвижения, так скзть, горизонтов.


Какие горизонты? Речь идет о языке выбираемом для знакомства с программированием?

ЗХ> Но учить его первым — по-моему, искалечить восприятие.


Вот и я о том же! В лес такие сумашедшие идеи.

ЗХ>Оберон (пока Губанов не слышит) — полнейшее, на мой вкус, занудство. Его изучение как первого языка еще может быть оправдано теми факторами, о которых я уже сказал. Как второго (третьего...) не даст в смысле мировоззрения абсолютно ничего.


Я в общем-то говорю о том же. Оберон это язык ничемго не дающий в плане обучения. Да он более качественно спроектирован чем С. Обладает меньшей сложностью нежели С++. Но он перед тем же Шарпом у никго практически нет приемуществ. Шарп спроектирован как миниуму не хуже (а по сути значительно лучше). После Шарпа человеку будет очень легко изучить и другие языки мэйнстрима (Яву, С++, Дельфи). В последней версии Шарпа можно даже демонстрировать функциональный стиль. Если же детей обучить Оберону, то при попытке изучения вышеперечисленных языков у них будет натуральная ломка. Так зачем создавать проблемы людям? В общем, уж лучше действительно пусть Питон преподают. В нем и то подходы ближе к реальной жизни.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Мэйнстрим vs. Самосовершенствование :)))
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 15:42
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Любой человек хоть немного знакомый с оберонами, не говоря уже о компетентных в этих вопросах людях, знает, что для выходя из процедуры в оберонах используется именно тот самый оператор RETURN. А вот, Вы об этом до сих пор не знаете, а еще чего-то против высказываете.


Я не то чтобы не знаю. Я просто смотрел Оберон в 97-98 годах. С тех пор обращаться к нему у меня небыло желания. Больше всего запомнилось то как в нем реализован ООП. Вот уж если нужно дать неверное восприятие ООП, то Оберон тут очень кстати.

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

Объясните мне чем вам не угодил C#? Какие такие проблемы вы в нем углядели, чтобы отказаться от него впользу Оберона? Ведь этот язык живой и его изучение дает рельную пользу в будущем. После него любой из мэйнстримных языков (Ява, С++, Дельфи) изучаются довольно легко. При этом C# очень хорошо спроектирован. Не имет проблем С++ (сложность, запутанность), проблем Дельфи (связанных с эвалюционным развитием).

VD>>.....Причем начиная учить детей на Обероне им в первую очередь навязывают стиль, а не объясняют принципы построения грамотного кода....


СГ>А вот компетентные в этом вопросе люди утверждают обратное.


Я бы, на вашем месте, не пытался применять на РСДН столь низкие приемы демагогии. Здесь это не пройдет. Возможно я не дока в Обероне. Но я видел этот язык и пробовал на нем программировать. При этом я очень неплохо знаю те самые С++, Дельфи C#, и отчасти, Яву. И почти уверен, что моя компетенция в этом вопросе как миниуме не ниже вашей.

СГ> Ссылки я уже неоднократно приводил.


Я вообще не пойму зачем вы пришли сюда? Посоветоваться? Дык вам дали совет не морочте демять голову Обероном в начале их пути. Но вы услышав почти однозначное осуждение своего мнения все равно проталкиваете свою идею. Точно такое же осуждение вы получили на королевстве дельфи. Так каковы ваши цели?
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Мэйнстрим vs. Самосовершенствование :)))
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 15:42
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>А RETURN — это уже не аргумент? Человек заявил что у Вирт что-то имеет против RETURN, а вот то что во всех оберонах этот RETURN всегда был, этот человек не вкурсе. И это называется у меня нет аргументов?


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

Еще раз повторяю, что Оберон я видел в 97-98 году (после прочтения какой-то восторженной публикации). Если очнь охота можно устроить последовательное сравнение Оберона с тем же C#, чтобы увидить превосходство Оберона в целях преподавания ООП в школах.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 15:43
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

VD>>...При этом Оберон не имеет какх-то существенных приемуществ при обучении...


СГ>А вот, компетентные в этом вопросе люди утверждают обратное. Ссылки я уже приводил.


А вот демагоги, когда у них кончаются аргументы, постоянно пытаются намекать на некомпетентность собеседников.

Итак, спрашиваю напрямую. Какие есть аргументы в оправдание тому, что Оберон имеет приемущество перед тем же C# или Питоном (в целях обучения)?

Если их нет, то предлагаю заночить это обсуждение. Проталкивайте свои иде в другом месте.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Мэйнстрим vs. Самосовершенствование :)))
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 15:43
Оценка:
Здравствуйте, prVovik, Вы писали:

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


Поэтому здесь было решено обсудить именно жесткую привязку к мертворожденному языку?


V> Понятно, что совсем без привязки не обойтись,


Ну, а раз понятно. То не нужно зацикливаться на этом. Пусть зацикливаются на методике препадавания. На концепциях которые нужно в первую очередь преподать ученику. На том как сделать все это наиболее доходчиво и просто. А в качестве языка выбрать один из живых языков. В меру просто, и вмеру навороченый. С++ для этого выбирать не стоит (в виду его сложности). Но есть же и другие достойные языки.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 15:43
Оценка:
Здравствуйте, Kluev, Вы писали:

K>Такую как в питоне? Задачка на вечер? Извини, но ты насмешил мои тапочки.


Ну, ты успокой свои тапочки. Утилит таких как грязи.

K> Скачай питоновскую среду (IDLE) и тогда сам поймешь, что для обучения вряд ли можно найти что-то лучшее.


Зачем мне слабенькие ИДЕ? Речь шао о "приемуществе командной строки". А IDE у Шарпа уж точно не хуже. И командная строка там есть (окно имидиэт). Из него точно так же можно работать как из командной строки Питона. А уж отладобчные фичи у нее скорее покручи будут. Тот же рефакторин много стоит.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 15:43
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Смотря в какой форме Вы их будете там излагать и какие аргуиенты приводить.


Откровенно говоря мне и здесь места хватает. Здесь я могу высказывать свое мнение без ограничений. В прочем как и вы.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Мэйнстрим vs. Самосовершенствование :)))
От: Зверёк Харьковский  
Дата: 25.10.04 16:21
Оценка: +3 :)))
Здравствуйте, VladD2, Вы писали:

[флейм о борландо-филах я выгрыз. старо.]

VD>...почему бы не учить на том, что может с большой вероятностью быть востребовано, а не на мертвяке?

VD>...Вот и не нужно объяснять это на "выдуманных" язвках. Объясняйте это на вымученных языках...
Подумал я... и вот чего надумал.
С одной стороны — человеку, который вообще не представляет, как и что делает программист, концепцию цикла бывает проще объяснить на примере

For I=1 To 10
Next

(с) VB

или

for i:=1 to 10 do
begin
end;

(c) Pascal

нежели
for(int i = 0; i < 10; ++i)
{
}

(c) а то сам не видишь...

равно как и с некоторыми другими концепциями, где Паскаль жертвует гибкостью ради очевидности.
(Ахтунг! Контр-примеры на Шарпе не приводить! Я просто иллюстрировал точку зрения)

С другой стороны — жизнь показала, что слишком часто языки, созданные чисто для обучения, выращивают людей, которые стремятся только на этих языках и писать. Что получается — мы все знаем.

ЗХ>>Go! — язык, заточенный под программирование агентов.

VD>Киборги?
Нееее. Матрица.

[смолток выгрызен. Вроде договорились.]

VD>..Но перед тем же Шарпом... Шарп спроектирован как миниуму не хуже (а по сути значительно лучше)... После Шарпа...легко изучить и другие языки... можно даже демонстрировать функциональный стиль...

Влад, вообще нравственный посыл первого моего поста был таков: нефиг.
Честно говоря, в свете развязавшейся тут войны, плавно перетекшей в Шарп против Оберона, Шарп против Питона, Шарп против СмолТока твой фанатизм немногим лучше фанатизма Губанова (только тем, что он защищает мертвый язык, а ты — живой. Ну и общаешься ты существенно корректнее)
В каждом языке есть свои кайфы, и холиваром ничего не докажешь.

Хотя круче С++ языка нет, не было, и не надо, а C# — конъюнктурная поделка Мелкософта
FAQ — це мiй ай-кью!
Re[7]: вопрос знатокам SmallTalk
От: Poisson Россия  
Дата: 25.10.04 17:18
Оценка: 6 (1)
Здравствуйте, lesha-v, Вы писали:

LV>Здравствуйте,

LV>Решил я посмотреть на SmallTalk... скачал VisualWorks7.2.1, установил...
LV>аа шрифт в диалогах прочитать не возможно что делать, подскажите ? неужели так и не удасться познакомиться со смолтолком...
Да, есть там такая милая бага (проявляется с русской локалью).

Лечится так: значение (не помню какое) в WinXPLookPolicy class>>defaultSystemFontScale надо заменить на 0.8 или в WinXPLookPolicy class>>defaultSystemFontDescription заменить 'arial' на 'arial*'
... << RSDN@Home 1.1 beta 2 >>
Вдогонку...
От: Poisson Россия  
Дата: 25.10.04 17:24
Оценка:
Здравствуйте, Poisson, Вы писали:

P>Здравствуйте, lesha-v, Вы писали:


Да, а потом выполнить WinXPLookPolicy initialize
... << RSDN@Home 1.1 beta 2 >>
Re[10]: Oberon???????????????????????????????????
От: FR  
Дата: 25.10.04 17:45
Оценка:
Здравствуйте, VladD2, Вы писали:


K>> Скачай питоновскую среду (IDLE) и тогда сам поймешь, что для обучения вряд ли можно найти что-то лучшее.


VD>Зачем мне слабенькие ИДЕ? Речь шао о "приемуществе командной строки". А IDE у Шарпа уж точно не хуже. И командная строка там есть (окно имидиэт). Из него точно так же можно работать как из командной строки Питона. А уж отладобчные фичи у нее скорее покручи будут. Тот же рефакторин много стоит.


IDLE это не ИДЕ, просто тот же интерпретатор с командный строкой, плюс текстовый редактор и отладчик.
Да насчет IDE скачал я вчера Visual Python, это плагин к VS.NET. В общем практически для питона получается обычное VS иде нечем не хуже плюсового, так вот IDLE или (SciTE) гораздо удобнее для работы.
... << RSDN@Home 1.1.3 stable >>
Re: Oberon???????????????????????????????????
От: LaptevVV Россия  
Дата: 25.10.04 17:56
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Почитал я тут защитников Оберона, и задумался. Надо первачков учить. Раньше мы, естественно, первый семестр учили на Турбо-паскале. А потом переходим на С и С++ — и понеслась. Турбо-паскаль нужен нам был, что на чемпионате мира меньше проблем было. А теперь турбо=паскаль умер, и надо что-то выбирать. С++ как первый язык давать не хочу — поймут отнюдь не все. Студенты есть из сел, поэтому сначала их надо в проблематику написания программ ввести, не касаясь сильно компьютерных особенностей, особенно указателей. Вот на чем? На обероне?

LVV>Интересует любая информация о трансляторах, IDE, справочные материалы, адреса в инете — в общем все, что мы проанализируем и потом примем решение.
LVV>Кстати, какие альтернативы оберону есть, кто-нить представляет?
LVV>На западе, насколько знаю — обучают сначала функциональному языку типа Haskel.
LVV>Ы??????????????????????????????????????????

В общем, у меня мнение сложилось: явных претендентов два питон и додиез. Проблема в том. что нет преподавателей, кроме моих молодых аспирантов, которые способны на приемлемом уровне до февраля освоить либо тот, либо другой. В пользу додиеза говорят еще некоторые не связанные с программированием местные особенности.
Спасибо всем за продуктивную дискуссию!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[11]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 20:07
Оценка:
Здравствуйте, FR, Вы писали:

FR>Да насчет IDE скачал я вчера Visual Python, это плагин к VS.NET. В общем практически для питона получается обычное VS иде нечем не хуже плюсового, так вот IDLE или (SciTE) гораздо удобнее для работы.


А ты с плюсовым не сравнивай. Ты надыбай VS 2005 или 2003 но с ReSharper-ом.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Мэйнстрим vs. Самосовершенствование :)))
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 20:07
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>С одной стороны — человеку, который вообще не представляет, как и что делает программист, концепцию цикла бывает проще объяснить на примере


ЗХ>
ЗХ>For I=1 To 10
ЗХ>Next
ЗХ>

ЗХ>(с) VB


Концепции цикла нужно объяснять на базе вайла:
whle (condition)
{
}

причем пофигу на каком языке. Тогда и объяснение будет простым и понятным.

Как я уже говорил из преподнесения фор-а мне бльше всего понравился вариант Питона:
for x in range(10)
    ...


Его тоже можно объяснить на пальцах. А приведенные тобой императивные варианты фор-а как раз сложны для восприятия. Их лучше уже потом.

ЗХ>С другой стороны — жизнь показала, что слишком часто языки, созданные чисто для обучения, выращивают людей, которые стремятся только на этих языках и писать. Что получается — мы все знаем.


Именно. А людей учат для жизни, а не чтобы посмеяться над результатом.

ЗХ>[смолток выгрызен. Вроде договорились.]


В смысле что нецензурными словами не выражаться?

VD>>..Но перед тем же Шарпом... Шарп спроектирован как миниуму не хуже (а по сути значительно лучше)... После Шарпа...легко изучить и другие языки... можно даже демонстрировать функциональный стиль...

ЗХ>Влад, вообще нравственный посыл первого моего поста был таков: нефиг.
ЗХ>Честно говоря, в свете развязавшейся тут войны, плавно перетекшей в Шарп против Оберона, Шарп против Питона, Шарп против СмолТока твой фанатизм немногим лучше фанатизма Губанова

Дык тут оно как. Я провозился 3 года с С, окло 10 с С++, два года на Gupta SQLWindows, два на Дельфи, с Явой где-то месяца три повозился, пять лет протрахался с COM-ом, последние 2.5 вожусь с дотнетом и Шарпом. Все языки били интересны и во всех было "что-то". Однако на сегодня шарп объективно совершенее, хотя опять таки не идеален. И опять таки во многих языках есть фичи которые я бы с удовольствием видел в нем. Так что это не фанатизм. Это соврешенно осознанный выбор. Это действительно очень элегантный язык, особенно новая версия 2.0.

Однако! Если ты заметил я предлагаяю не в обезательном порядке Шарп (хотя по-моему — это действительно хороший выбор), а ни в коем случае не Оберон. И именно чтобы потом не получить картину на подобии той что случилась с Делфи и ВБ.

ЗХ> (только тем, что он защищает мертвый язык, а ты — живой. Ну и общаешься ты существенно корректнее)


Именно, что мертвый. Пойми, я конечно буду больше рад если это буедт Шарп, но против Явы или Питона я не буду так сильно протистовать. Именно потому что это современные и живые языки. Ну, и потому, что после них не прийдется ломать сознание.

ЗХ>В каждом языке есть свои кайфы, и холиваром ничего не докажешь.


Бесспорно. Но это же не повод, чтобы навязывать детям этот Оберон?

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

ЗХ>Хотя круче С++ языка нет, не было, и не надо, а C# — конъюнктурная поделка Мелкософта


Однако учить С++ лучше уже окрпшим умом. А то можно и кршу потерять.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Мэйнстрим vs. Самосовершенствование :)))
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 20:07
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>нежели

ЗХ>
ЗХ>for(int i = 0; i < 10; ++i)
ЗХ>{
ЗХ>}
ЗХ>

ЗХ>(c) а то сам не видишь...

Кстати, я учился программировать на С. Так что первым фор-ом был как раз сишный. И знаешь, что я припоминаю? фор не оказался для меня хоть каким-то пониманием. А вот sizeof() (я его тогда почему-то называл "сюзеооф" ) меня по началу вводил в дикий ступор. Причем почему я так до сих пор и не понял. А из языковых конструкций мене бли больше всего непонятны битовые структуры. Ну, не мог я въехать в разные x:2. По сути я не сильно понимал что такое биты, а тут какя-то хрень зумная.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Мэйнстрим vs. Самосовершенствование :)))
От: Зверёк Харьковский  
Дата: 25.10.04 21:15
Оценка:
Здравствуйте, VladD2, Вы писали:

[про циклы погрыз. бо скучно]

ЗХ>>[смолток выгрызен. Вроде договорились.]

VD>В смысле что нецензурными словами не выражаться?
В смысле, что пришли к одинаковому мнению: его неплохо бы хотя бы посмотреть, но начинать с него не след.

VD>>>..Но перед тем же Шарпом... Шарп спроектирован как миниуму не хуже (а по сути значительно лучше)... После Шарпа...легко изучить и другие языки... можно даже демонстрировать функциональный стиль...

ЗХ>>Влад, вообще нравственный посыл первого моего поста был таков: нефиг.
ЗХ>>Честно говоря, в свете развязавшейся тут войны, плавно перетекшей в Шарп против Оберона, Шарп против Питона, Шарп против СмолТока твой фанатизм немногим лучше фанатизма Губанова

VD>Дык тут оно как. Я провозился 3 года с С, окло 10 с С++, два года на Gupta SQLWindows, два на Дельфи, с Явой где-то месяца три повозился, пять лет протрахался с COM-ом, последние 2.5 вожусь с дотнетом и Шарпом.

ой... глубоко нескромный вопрос: а сколько тебе лет? а то что-то у меня ментальная модель кажется не соответствует действительности

VD>Все языки били интересны и во всех было "что-то". Однако на сегодня шарп объективно совершенее


Блин! Ну повбывав бы! Ну скоко можно!
А по моему субъективному мнению С++ объективно совершенен. Как говорил в этом топике, кажись, ВольфХаунд — ИмеюМнениеХренОспоришь.

ЗХ>>В каждом языке есть свои кайфы, и холиваром ничего не докажешь.

VD>Бесспорно. Но это же не повод, чтобы навязывать детям этот Оберон?
Да ладно тебе... Губанов сбежал давно, а ты еще пару месяцев вместо привычного "Шарп круче всего" будешь в любом топике повторять что Оберон — мертвый язык...

ЗХ>>Хотя круче С++ языка нет, не было, и не надо, а C# — конъюнктурная поделка Мелкософта


VD>Однако учить С++ лучше уже окрпшим умом. А то можно и кршу потерять.

На Перле писал?
Это мой второй любимый (после самизнаетечего). Язык уродский, но безумно занятный.
FAQ — це мiй ай-кью!
Re[9]: Мэйнстрим vs. Самосовершенствование :)))
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 21:46
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>В смысле, что пришли к одинаковому мнению: его неплохо бы хотя бы посмотреть, но начинать с него не след.


+1

ЗХ>ой... глубоко нескромный вопрос: а сколько тебе лет? а то что-то у меня ментальная модель кажется не соответствует действительности


31 но это не значит, что я в 4 года программировать начал. Просто некоторые вещи использовались параллельно. Последовательно изучались только С и С++. Я кстати, еще на КуВасике еще успел пописать. И на ВизуалВасике.

VD>>Все языки были интересны и во всех было "что-то". Однако на сегодня шарп объективно совершенее

ЗХ>
ЗХ>Блин! Ну повбывав бы! Ну скоко можно!

А чё?
- Варона, варона! Сколько у тебя ножек?
- Две.  :shuffle: Особенно левая!



ЗХ>А по моему субъективному мнению С++ объективно совершенен. Как говорил в этом топике, кажись, ВольфХаунд — ИмеюМнениеХренОспоришь.


И хрен можно оспорить. (с) я.

Плюсы вещь конечно заслуженная. Но крайне хреново спроектированная. Спец-средство по набитию шишек.

ЗХ>Да ладно тебе... Губанов сбежал давно, а ты еще пару месяцев вместо привычного "Шарп круче всего" будешь в любом топике повторять что Оберон — мертвый язык...


Ради детей я готов на все (с) Ося Бэндер

ЗХ>На Перле писал?


Ой, и писал, и плевал и ... но толку чуть.

ЗХ>Это мой второй любимый (после самизнаетечего). Язык уродский, но безумно занятный.


Ужас какой. Это типа интеллекутальный мазохизм?
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Oberon???????????????????????????????????
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.10.04 22:17
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>В общем, у меня мнение сложилось: явных претендентов два питон и додиез.


Хороший выбор!

LVV>Проблема в том. что нет преподавателей, кроме моих молодых аспирантов, которые способны на приемлемом уровне до февраля освоить либо тот, либо другой.


Нда. Это действительно нехилая проблема. До февраля времени в обрез. Тут только если по бразильской системе. (с) Ералаш

LVV> В пользу додиеза говорят еще некоторые не связанные с программированием местные особенности.


А можно узнать, что за особенности?
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Мэйнстрим vs. Самосовершенствование :)))
От: Зверёк Харьковский  
Дата: 25.10.04 23:34
Оценка:
Здравствуйте, VladD2, Вы писали:

ЗХ>>ой... глубоко нескромный вопрос: а сколько тебе лет? а то что-то у меня ментальная модель кажется не соответствует действительности


VD>31 но это не значит, что я в 4 года программировать начал. Просто некоторые вещи использовались параллельно. Последовательно изучались только С и С++. Я кстати, еще на КуВасике еще успел пописать. И на ВизуалВасике.


Упс... однако.... умею я ошибаться в людях. В общем, я думал, ты моложе.
Тогда мне с моими (страшно сказать) 22-мя надо пойти помолчать в тряпочку

VD>Плюсы вещь конечно заслуженная. Но крайне хреново спроектированная. Спец-средство по набитию шишек.

Ну Влааааад!

ЗХ>>На Перле писал?


VD>Ой, и писал, и плевал и ... но толку чуть.


ЗХ>>Это мой второй любимый (после самизнаетечего). Язык уродский, но безумно занятный.


VD>Ужас какой. Это типа интеллекутальный мазохизм?


Да как тебе сказать. Я по профессии — любознательный бездельник. То есть в жизни устраиваюсь так, чтобы надо мной не было никаких боссов, могущих сказать "Дорогой Зверек, а не попрограммировать ли тебе на VB?" (бывало и такое )
Сижу дома, занимаюсь чем попало.
Может быть поэтому меня и прет Перл (как сказал, а?): я не пишу на нем проект, который надо было сдать еще вчера, а так, для дома, для семьи.
Он просто охренительно особенный. Он из тех средств, про которые говорят "... way" (unix way, perl way, smalltalk, кстати, way)
И этот самый way зачастую — это правда полезный путь, которому можно в какой-то степени следовать не только под Юнихом и на Перле. Это то самое расширение сознания...

Так что Перл пер, прет, и будет переть

ЗЫ: А вот Шарп — он расширяет сознание, как по-твоему?
FAQ — це мiй ай-кью!
Re[11]: Мэйнстрим vs. Самосовершенствование :)))
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.10.04 00:03
Оценка: 9 (2)
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>ЗЫ: А вот Шарп — он расширяет сознание, как по-твоему?


Шап — это конечно не вэй. Шарп — это ХАЙВЭЙ.

Что-то я как-то про него сегодня скромно.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Мэйнстрим vs. Самосовершенствование :)))
От: Павел Кузнецов  
Дата: 26.10.04 00:22
Оценка:
VladD2:

> Шарп — это ХАЙВЭЙ.


Продолжая начатую тему о дорогах

Well I’m standing by a river
But the water doesn’t flow
It boils with every poison you can think of
And I’m underneath the streetlight
But the light of joy I know
Scared beyond belief way down in the shadows
And the perverted fear of violence
Chokes the smile on every face
And common sense is ringing out the bellc
This ain’t no technological breakdown
Oh no, this is the road to hell

And all the roads jam up with credit
And there’s nothing you can do
It’s all just bits of paper flying away from you
Oh look out world, take a good look
What comes down here
You must learn this lesson fast and learn it well
This ain’t no upwardly mobile freeway
Oh no, this is the road
Said this is the road
This is the road to hell

Posted via RSDN NNTP Server 1.9 gamma
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[8]: Мэйнстрим vs. Самосовершенствование :)))
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 26.10.04 04:35
Оценка: :))
Здравствуйте, VladD2, Вы писали:

ЗХ>>Хотя круче С++ языка нет, не было, и не надо, а C# — конъюнктурная поделка Мелкософта

VD>Однако учить С++ лучше уже окрпшим умом. А то можно и кршу потерять.

Истинно так. Так и становятся програмистами. Ну, теми, для которых программирование — диагноз.
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[3]: Мэйнстрим vs. Самосовершенствование :)))
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 26.10.04 04:35
Оценка: :))
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>А еще кто-то умный говорил, что программисту полезно знать основы генетики. Сильно развивает восприятие.

ЗХ>Думаю, про многие другие науки/дисциплины можно сказать то же самое (что их полезно знать программисту).

Угу:
— философия;
— риторика;
— психология и азы психиатрии;
— логика;
— основы лингвистики.

Эх, нехилый вводный курс в программирование может получиться! И правильно. Ибо сказано: нефиг.

ЗХ>Во. Типа dixi.

... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[6]: Vlad2
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.10.04 08:28
Оценка: -3
Здравствуйте, VladD2, Вы писали:

VD>Я вообще не пойму зачем вы пришли сюда? Посоветоваться? Дык вам дали совет не морочте демять голову Обероном в начале их пути. Но вы услышав почти однозначное осуждение своего мнения все равно проталкиваете свою идею.


А Вы посмотрите вокруг, Вы один тут делаете нападки на Оберон, только Вы один вынесли "однозначное осуждение", остальные находятся либо в нейтралитете, либо не ведут себя так же агрессивно как Вы, либо перестали утверждать что либо по этому поводу так как не считают себя компетентными в этой области. Уважаемый LaptevVV даже заинтересовался вопросом преподавания Оберона первокурсникам, Kluev заинтересовался оператором WITH. А вот Вы VladD2 неоднократно были уличены в незнании вопроса о котором ведете речь, то есть именно своей некомпетентности в этом вопросе. Ваш последний пёрл на счет RETURN-на чего только стоит. Я мол на нем даже программировал давно, ля-ля, а как Вы на нем программировали, а из процедур RETURN ни разу значит не делали, упс... А теперь, значит, Вы спрашиваете зачем я пришел сюда. Это как понимать: форум RSDN и некий VladD2 это близнецы-братья? Чего я пришел на RSDN означает чего это я пришел к VladD2? Так чтоли? Раз я несколько раз ткнул Вас носом, то мне теперь и на RSDN ходить нельзя? RSDN — это форум, а Вы тут участник. Я пришел на форум, а не лично к Вам.

VD>Точно такое же осуждение вы получили на королевстве дельфи.


Да осуждение я там получил, вот такое:

Почитал несколько веток с Вашим участием...
У каждой такой "тусовки" есть своя специфика, со своим контИнгентом участников... RSDN в этом отношении — ярчайший и показательный пример. Волею судеб, я оказался вовлечён в работу харьковского семинара по QNX ( http://qnxclub.net ). Наиболее активный наш участник, Olej, захаживал как-то на RSDN, в ветки, посвящённые Юникс-системам и ОСРВ. То, с чем он там столкнулся (уровень знаний, информированность в "сопредельных с виндой областях", а главное — просто-таки параноидальная вера в собственную "правильность" и непогрешимость практически во всех поднимаемых на форуме вопросах), заставило Olej высказать несколько замечаний "по делу". С момента, когда RSDNовские ребята поняли, что их макают носиком в собственные примеры некомпетентности, нас забанили...

В Вашем случае от них "аж прэ" не то, что не понимание поднимаемых вопросов, а нет даже желания вынырнуть из собственного мирка...
Вот на это Вы и должны делать "поправку"...
Вам разве не ясно, что они уже всё в этой жизни поняли? :о)

Просто делайте своё дело. Всё остальное оно само сделает (и скажет) за Вас.

http://www.delphikingdom.com/asp/talktopic.asp?ID=285
Re[7]: Vlad2
От: WFrag США  
Дата: 26.10.04 08:39
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>А Вы посмотрите вокруг, Вы один тут делаете нападки на Оберон, только Вы один вынесли "однозначное осуждение", остальные находятся либо в нейтралитете, либо не ведут себя так же агрессивно как Вы, либо перестали утверждать что либо по этому поводу так как не считают себя компетентными в этой области. [...]


Зато у его стиля общения в священных войнах есть один плюс — его сложно проигнорировать.
Re[7]: Vlad2
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 26.10.04 08:44
Оценка: 1 (1)
Здравствуйте, Сергей Губанов, Вы писали:

СГ>А Вы посмотрите вокруг, Вы один тут делаете нападки на Оберон, только Вы один вынесли "однозначное осуждение", остальные находятся либо в нейтралитете, либо не ведут себя так же агрессивно как Вы, либо перестали утверждать что либо по этому поводу так как не считают себя компетентными в этой области.

Ну, это, мягко говоря, не совсем так.
СГ>[q]
СГ>Почитал несколько веток с Вашим участием...
СГ>У каждой такой "тусовки" есть своя специфика, со своим контИнгентом участников... RSDN в этом отношении — ярчайший и показательный пример. Волею судеб, я оказался вовлечён в работу харьковского семинара по QNX ( http://qnxclub.net ). Наиболее активный наш участник, Olej, захаживал как-то на RSDN, в ветки, посвящённые Юникс-системам и ОСРВ. То, с чем он там столкнулся (уровень знаний, информированность в "сопредельных с виндой областях", а главное — просто-таки параноидальная вера в собственную "правильность" и непогрешимость практически во всех поднимаемых на форуме вопросах), заставило Olej высказать несколько замечаний "по делу". С момента, когда RSDNовские ребята поняли, что их макают носиком в собственные примеры некомпетентности, нас забанили...
Это не тот ли суперкомпетентный Olej, который критиковал www.TPC.org и утверждал, что прохождение его тестов стоит больших денег, что и сдерживает его гениальных друзей от занимания там первых строчек? А "ветки, посвященные ОСРВ и Unix" — это печально известный флейм Win vs Lin? Ах да, его же забанили за матерные высказывания. Прекрасный у тебя нашелся помощник .
СГ>В Вашем случае от них "аж прэ" не то, что не понимание поднимаемых вопросов, а нет даже желания вынырнуть из собственного мирка...
Ну, если бы ты меньше игнорировал "неудобные" тебе аргументы, и следил за логикой своих постингов, а также делал поменьше утверждений о компетентности собеседников — вот тогда подобные заявления еще могли бы снискать популярность. А так все это выглядит не более чем раскидыванием понтов. Да, Влад — человек довольно резкий. Но он говорит дело, и ты зря к нему не прислушиваешься. Доскональное знание Оберона — не критерий. Дыры в твоих рассуждениях видны невооруженным взглядом безо всякого Оберона. Влад же вполне готов вынырнуть из собственного мирка. Вот как раз ты из своего — не готов. Это называется "религиозный фанатизм".
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[2]: Обновление
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.10.04 08:44
Оценка: 3 (1)
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, LaptevVV, Вы писали:


LVV>>Почитал я тут защитников Оберона, и задумался. Надо первачков учить.


СГ>Смотрите проект Информатика 21


СГ>http://www.inr.ac.ru/~info21/


Сегодня сайт проекта Информатика 21 был серьезно обновлен. Заходите смотрите.

Основная новость: к концу 2004 года ожидается открытие исходного кода BlackBox.
Re[5]: Мэйнстрим vs. Самосовершенствование :)))
От: serg_mo  
Дата: 26.10.04 08:44
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>СмолТок — воистину. Именно за счет того, что сильно отличается от всего остального. Просто для раздвижения, так скзть, горизонтов. Но учить его первым — по-моему, искалечить восприятие.


Искалечить восприятие чего?
... << RSDN@Home 1.1.3 stable >>
Re[8]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.10.04 09:01
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Итак, спрашиваю напрямую. Какие есть аргументы в оправдание тому, что Оберон имеет приемущество перед тем же C# или Питоном (в целях обучения)?


Отвечаю напрямую: Оберон — проще!

Кстати, а что это Java уже исчезла из списка, остались только C# и Питон? Это из-за отсутствия в Java обычных процедур, так что процедурное программирование (подпрограммы) пришлось бы детям объяснять на примере статик методов? Хе-Хе, так ведь минимальные знания какими нужно располагать чтобы программировать на C# тоже отличны от нулевых. Вот пожалуйста, минимальный проект-болванка генерируемый автоматически MS Visual Studio:
using System;

namespace CDiesConsoleApplication1
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            //
            // TODO: Add code to start application here
            //
        }
    }
}

То есть сначала надо будет объяснить что такое namespace, class, static void Main, ее аргумент string[] args, вот этого кракозябла [STAThread] — объяснить. Не хило?
Re[9]: P.S.
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.10.04 09:04
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, VladD2, Вы писали:


VD>>Итак, спрашиваю напрямую. Какие есть аргументы в оправдание тому, что Оберон имеет приемущество перед тем же C# или Питоном (в целях обучения)?


СГ>Отвечаю напрямую: Оберон — проще!


P.S. Предыдущее сообщение про C#, на счет Питона прошу его не относить, я в Питоне не компетентен.
Re[9]: Oberon???????????????????????????????????
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 26.10.04 09:15
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Кстати, а что это Java уже исчезла из списка, остались только C# и Питон? Это из-за отсутствия в Java обычных процедур, так что процедурное программирование (подпрограммы) пришлось бы детям объяснять на примере статик методов? Хе-Хе, так ведь минимальные знания какими нужно располагать чтобы программировать на C# тоже отличны от нулевых. Вот пожалуйста, минимальный проект-болванка генерируемый автоматически MS Visual Studio:
СГ>То есть сначала надо будет объяснить что такое namespace, class, static void Main, ее аргумент string[] args, вот этого кракозябла [STAThread] — объяснить. Не хило?

А можно в ответ привести минимальную программу на обероне?
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[20]: Oberon?
От: LaptevVV Россия  
Дата: 26.10.04 09:27
Оценка:
Здравствуйте, eugals, Вы писали:

VD>>Еще раз. Прозрачность должна еще должна быть зачем-то нужна. Если я получаю в 10 раз блее медленное решение, то уж лучше я обойдусь менее прозрачным.

E>Не в десять.
Для обучения это как раз абсолютно некритично. Скорость будем получать потом — на С++.
E>>> Плюс удобное Python-Си апи, А С(++), несмотря на майкрософтовский прессрелизы, всё ещё главный мировой язык для разработки библиотек.
А вот это — важно! Спасибо!

E>>> Плюс у него есть много других преимуществ (встроенные возможности АОП, например).

VD>>Вот об этом интересно было бы послешать по подробнее.
E>Почитай про метаклассы.
Спасибо!
E>Особенно после того, как в Python 2.4 появились атрибуты (декораторы), навроде шарповских (вообще, они и раньше типа были, но не такие удобные).
Спасибо!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Oberon???????????????????????????????????
От: LaptevVV Россия  
Дата: 26.10.04 09:36
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, LaptevVV, Вы писали:


LVV>>В общем, у меня мнение сложилось: явных претендентов два питон и додиез.


VD>Хороший выбор!


LVV>>Проблема в том. что нет преподавателей, кроме моих молодых аспирантов, которые способны на приемлемом уровне до февраля освоить либо тот, либо другой.


VD>Нда. Это действительно нехилая проблема. До февраля времени в обрез. Тут только если по бразильской системе. (с) Ералаш


LVV>> В пользу додиеза говорят еще некоторые не связанные с программированием местные особенности.


VD>А можно узнать, что за особенности?

Есть мысль совместить в учебном плане обучение по программе Aptech — международный диплом. А у них двухлентняя программа для двух вариантов: додиез и Ява. Я склоняюсь к додиезу.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[10]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.10.04 09:37
Оценка: :)
Здравствуйте, Sinclair, Вы писали:

СГ>>То есть сначала надо будет объяснить что такое namespace, class, static void Main, ее аргумент string[] args, вот этого кракозябла [STAThread] — объяснить. Не хило?


S>А можно в ответ привести минимальную программу на обероне?

MODULE MyModule;

IMPORT StdLog;

BEGIN
  StdLog.String('Здравствуй мир!');

END MyModule;



Примеры простейших программ:
http://www.inr.ac.ru/~info21/cpascal/primery.htm
Re[6]: Мэйнстрим vs. Самосовершенствование :)))
От: INTP_mihoshi Россия  
Дата: 26.10.04 09:40
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Объясните мне чем вам не угодил C#?


Мне в нем не нравится (с точки зрения обучения) только одно — то, что он навязывает ООП.
Re[10]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.10.04 09:42
Оценка: :))
Здравствуйте, Sinclair, Вы писали:

СГ>>То есть сначала надо будет объяснить что такое namespace, class, static void Main, ее аргумент string[] args, вот этого кракозябла [STAThread] — объяснить. Не хило?


S>А можно в ответ привести минимальную программу на обероне?

MODULE MyModule;

IMPORT StdLog;

BEGIN
  StdLog.String("Здравствуй мир!");

END MyModule;



Примеры простейших программ:
http://www.inr.ac.ru/~info21/cpascal/primery.htm
Re[11]: Oberon???????????????????????????????????
От: INTP_mihoshi Россия  
Дата: 26.10.04 10:05
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:


S>>А можно в ответ привести минимальную программу на обероне?

СГ>
СГ>MODULE MyModule;

СГ>IMPORT StdLog;

СГ>BEGIN
СГ>  StdLog.String("Здравствуй мир!");

СГ>END MyModule;
СГ>



Вопрос. Какова вероятность, что ученик допустит в этом (или близком к этому) коде ошибку и не сможет ее исправить на основании только сообщений компилятора?

Сколько всего нужно ученику объяснить, чтобы он понимал значение каждого слова в этом коде, а не копировал "с доски" по принципу "дэти, это нэвозможно понат, это надо запомныт".

И к вам, C#, это тоже относится
Re[11]: Oberon???????????????????????????????????
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 26.10.04 10:06
Оценка: 1 (1) +1
Здравствуйте, Сергей Губанов, Вы писали:

И чем же этот хрен слаще вот такой редьки:
using System;
class Class1
{
    static void Main()
    {
        Console.WriteLine("Hello World");
    }
}

?
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[7]: Мэйнстрим vs. Самосовершенствование :)))
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 26.10.04 10:06
Оценка:
Здравствуйте, INTP_mihoshi, Вы писали:
INT>Мне в нем не нравится (с точки зрения обучения) только одно — то, что он навязывает ООП.
Гм. А вы уверены, что хотите остановиться на процедурном программировании?
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[8]: Мэйнстрим vs. Самосовершенствование :)))
От: INTP_mihoshi Россия  
Дата: 26.10.04 10:21
Оценка:
Здравствуйте, Sinclair, Вы писали:

INT>>Мне в нем не нравится (с точки зрения обучения) только одно — то, что он навязывает ООП.

S>Гм. А вы уверены, что хотите остановиться на процедурном программировании?

Я не уверен, что хочу начинать с объектного. И тем более не уверен, что я хочу останавливаться на объектах в том виде, в котором их представляет C#.
Re[8]: Мэйнстрим vs. Самосовершенствование :)))
От: Курилка Россия http://kirya.narod.ru/
Дата: 26.10.04 10:29
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, INTP_mihoshi, Вы писали:

INT>>Мне в нем не нравится (с точки зрения обучения) только одно — то, что он навязывает ООП.
S>Гм. А вы уверены, что хотите остановиться на процедурном программировании?

А почему ты уверен, что альтернатива лишь процедурное?
И почему обязательно останавливаться?
Это же только "начало", за ним следуют другие стадии
Re[12]: Oberon???????????????????????????????????
От: Kluev  
Дата: 26.10.04 10:30
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Сергей Губанов, Вы писали:


S>И чем же этот хрен слаще вот такой редьки:

S>
S>using System;
S>class Class1
S>{
S>    static void Main()
S>    {
S>        Console.WriteLine("Hello World");
S>    }
S>}
S>

S>?

И то и другое плохо.
Вот питон здесь рулит однозначно:
http://rsdn.org/File/16157/pyton.PNG
Re[9]: Мэйнстрим vs. Самосовершенствование :)))
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 26.10.04 10:47
Оценка:
Здравствуйте, Курилка, Вы писали:

К>А почему ты уверен, что альтернатива лишь процедурное?

К>И почему обязательно останавливаться?
К>Это же только "начало", за ним следуют другие стадии
Ну, потому что тут вроде Оберон противопоставляют. А у него пока что продемонстрировано только одно "преимущество" — возможность писать старый добрый процедурный код. АОП и FP он вроде бы поддерживает хуже, чем C#. Или я до каких-то важных стадий еще не дорос?
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[13]: Oberon???????????????????????????????????
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 26.10.04 10:47
Оценка: +1
Здравствуйте, Kluev, Вы писали:

K>И то и другое плохо.

K>Вот питон здесь рулит однозначно:
K>http://rsdn.org/File/16157/pyton.PNG
Ну, лично меня ты практически убедил
В качестве учебного языка мне он уже нравится. Я так понял, что единственное, что ему вменяется как помеха промышленному применению — так это производительность. Зато есть шанс показать все (или почти все) концепции современного программирования в одном флаконе. Это очень круто.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[10]: Мэйнстрим vs. Самосовершенствование :)))
От: Курилка Россия http://kirya.narod.ru/
Дата: 26.10.04 10:54
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Курилка, Вы писали:


К>>А почему ты уверен, что альтернатива лишь процедурное?

К>>И почему обязательно останавливаться?
К>>Это же только "начало", за ним следуют другие стадии
S>Ну, потому что тут вроде Оберон противопоставляют. А у него пока что продемонстрировано только одно "преимущество" — возможность писать старый добрый процедурный код. АОП и FP он вроде бы поддерживает хуже, чем C#. Или я до каких-то важных стадий еще не дорос?

Да нет, если Оберон рассматривать, то ты на 200% прав, я думаю...
Имхо Питон тут гораздо будет логичней, в котором есть всё что только можно вроде бы
Ну или по меньшей мере мне сейчас так кажется
Re[14]: Oberon???????????????????????????????????
От: INTP_mihoshi Россия  
Дата: 26.10.04 10:54
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Kluev, Вы писали:


K>>И то и другое плохо.

K>>Вот питон здесь рулит однозначно:
S>Ну, лично меня ты практически убедил
S>В качестве учебного языка мне он уже нравится. Я так понял, что единственное, что ему вменяется как помеха промышленному применению — так это производительность. Зато есть шанс показать все (или почти все) концепции современного программирования в одном флаконе. Это очень круто.

Ну, в Caml все практически так же... И без извратов с identами


#let square (x) = x * x;;
square : int -> int = <fun>
#let rec fact (x) =
  if x <= 1 then 1 else x * fact (x - 1);;
fact : int -> int = <fun>
#fact (5);;
- : int = 120
#square (120);;
- : int = 14400


И далее здесь
Re[15]: Oberon???????????????????????????????????
От: Курилка Россия http://kirya.narod.ru/
Дата: 26.10.04 11:02
Оценка:
Здравствуйте, INTP_mihoshi, Вы писали:

INT>Здравствуйте, Sinclair, Вы писали:


S>>Здравствуйте, Kluev, Вы писали:


K>>>И то и другое плохо.

K>>>Вот питон здесь рулит однозначно:
S>>Ну, лично меня ты практически убедил
S>>В качестве учебного языка мне он уже нравится. Я так понял, что единственное, что ему вменяется как помеха промышленному применению — так это производительность. Зато есть шанс показать все (или почти все) концепции современного программирования в одном флаконе. Это очень круто.

INT>Ну, в Caml все практически так же... И без извратов с identами



INT>
INT>#let square (x) = x * x;;
INT>square : int -> int = <fun>
INT>#let rec fact (x) =
INT>  if x <= 1 then 1 else x * fact (x - 1);;
INT>fact : int -> int = <fun>
INT>#fact (5);;
INT>- : int = 120
INT>#square (120);;
INT>- : int = 14400

INT>


INT>И далее здесь


Потому и во франции и на нём учат программить
Только всё равно больше будет специфики ФП если его рассматривать, но рынок всё-таки под императивщиками лежит
Re[12]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.10.04 11:16
Оценка: 2 (2) +1 :)
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Сергей Губанов, Вы писали:

MODULE MyModule;

IMPORT StdLog;

BEGIN
  StdLog.String("Здравствуй мир!");

END MyModule;


S>И чем же этот хрен слаще вот такой редьки:

using System;
class Class1
{
    static void Main()
    {
        Console.WriteLine("Hello World");
    }
}



Лучше тем что использовано меньше понятий, судите сами:

Оберон:

1) Существуют модули
2) Один модуль может импортировать другой модуль
3) В модулях есть подпрограммы, которые можно вызывать из других модулей

C#:

1) Существуют пространства имен (уже непонятность — а что, собственно, еще за пространство да еще и имен? Где они расположены? А как они выглядят эти пространства?)
2) Существуют классы (еще одна непонятность — что еще за классы? Классы чего? Мы в седьмом классе учимся и что с того?)
3) У классов есть статические методы (опять ребенку непонятно что такое статические и что такое методы, в чем разница между подпрограммами и методами?). Что такое void? Почему именно Main?
4) Как понять что Console как-то связана с приведенной выше using System;
Re[14]: Oberon???????????????????????????????????
От: LaptevVV Россия  
Дата: 26.10.04 11:30
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Kluev, Вы писали:


K>>И то и другое плохо.

K>>Вот питон здесь рулит однозначно:
S>Ну, лично меня ты практически убедил
S>В качестве учебного языка мне он уже нравится. Я так понял, что единственное, что ему вменяется как помеха промышленному применению — так это производительность. Зато есть шанс показать все (или почти все) концепции современного программирования в одном флаконе. Это очень круто.
При обучении производительность абсолютно некритична. Это будем на С++ осваивать.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Обновление
От: Kh_Oleg Германия http://kholeg.wordpress.com
Дата: 26.10.04 12:33
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, Сергей Губанов, Вы писали:


СГ>Сегодня сайт проекта Информатика 21 был серьезно обновлен. Заходите смотрите.

СГ>Основная новость: к концу 2004 года ожидается открытие исходного кода BlackBox.

А мне очень понравилась вот эта статья:
О дисциплине программирования
Re[16]: Oberon???????????????????????????????????
От: INTP_mihoshi Россия  
Дата: 26.10.04 12:37
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Потому и во франции и на нём учат программить

К>Только всё равно больше будет специфики ФП если его рассматривать, но рынок всё-таки под императивщиками лежит

Нудным голосом. В четвертый раз на этом форуме. "Ocaml поддерживает итеравтивное программирование".


let x = ref 1 in
for i = 1 to 10 do
x := !x * i
done;
print_int x


И еще в нем есть типизация. Имху это важнее, чем классы
Re[4]: Обновление
От: LaptevVV Россия  
Дата: 26.10.04 12:38
Оценка: :))
Здравствуйте, Kh_Oleg, Вы писали:

СГ>>Сегодня сайт проекта Информатика 21 был серьезно обновлен. Заходите смотрите.

СГ>>Основная новость: к концу 2004 года ожидается открытие исходного кода BlackBox.

K_O>А мне очень понравилась вот эта статья:

K_O>О дисциплине программирования
А вот с того же сайта

Вопрос: Почему столь важный продукт, как операционная система, используемая на сотне миллионов компьютеров во всем мире, строится на столь гнилом фундаменте, как язык программирования, для которого нельзя написать компилятор, генерирующий эффективный и безопасный код, с тем чтобы переложить тривиальный механический труд по нудной проверке индексов массивов с человека, которому свойственно ошибаться при выполнении механических процедур, на компьютер, который именно для таких процедур и придуман?
Ответ: Потому что подавляющее большинство программистов Майкрософт, начиная с Билла Гейтса, — как бы хорошо ни была организована их работа и какими бы талантливыми индивидуумами они ни были сами по себе — классические программисты-самоучки, втянутые в круговорот компьютерной революции большими деньгами и задумывающиеся о методологии программирования только под сильной угрозой со стороны конкурентов.

В начале 2002 г. Майкрософт на месяц приостановила нормальную работу, чтобы программистский персонал мог специально сосредоточиться на проблемах безопасности и надежности программ. Если оценить количество программистов Майкрософт в 20 тысяч человек при зарплате от $150 тыс. в год и выше, то стоимость месячника повышения квалификации выйдет не меньше 250 миллионов долларов. Майкрософт в состоянии это себе позволить. Остальным, видимо, все же дешевле перейти на инструменты программирования, где проверки индексов массивов не отключаются. Впрочем, и сама компания Майкрософт в настоящее время переходит на платформу .NET, в которой главный язык программирования — т.наз. C# — смоделирован во многом, в том числе и в отношении безопасности программирования, по образцу Оберона.

К вопросу о священной войне Губанова и Влада
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[13]: Oberon???????????????????????????????????
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 26.10.04 12:50
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Лучше тем что использовано меньше понятий, судите сами:


Опять передергиваем. Ай, как нехорошо. Разберемся подробнее:
Г>Оберон:

СГ>1) Существуют модули

Что такое модули? Или это в седьмом классе понятно всем и без объяснения?
СГ>2) Один модуль может импортировать другой модуль
Что значит импортировать?
СГ>3) В модулях есть подпрограммы, которые можно вызывать из других модулей
СГ>C#:

СГ>1) Существуют пространства имен (уже непонятность — а что, собственно, еще за пространство да еще и имен? Где они расположены? А как они выглядят эти пространства?)

Прошу прощения, а где у нас про пространства имен?
СГ>2) Существуют классы (еще одна непонятность — что еще за классы? Классы чего? Мы в седьмом классе учимся и что с того?)
Верно. Что-то все-таки надо детям рассказывать.
СГ>3) У классов есть статические методы (опять ребенку непонятно что такое статические и что такое методы, в чем разница между подпрограммами и методами?).
А при чем тут подпрограммы? Кто-то считает понятие подпрограммы присутствующим в детской голове прямо с рождения? Лично я в седьмом классе колбасил арканоиды безо всяких подпрограмм. Так что это — заблуждение. И вводить понятие метода ничуть не хуже, чем начинать с каких-то подпрограмм.
СГ>Что такое void? Почему именно Main?
Да. с Void придется повозиться.
СГ>4) Как понять что Console как-то связана с приведенной выше using System;
Хорошо, свяжем их явно.
class Class1
{
    static void Main()
    {
        System.Console.WriteLine("Hello World");
    }
}

Итак, пока что у нас Оберон — C# идут один-в-один, за исключением void. Во всем остальном паритет.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[6]: Мэйнстрим vs. Самосовершенствование :)))
От: Зверёк Харьковский  
Дата: 26.10.04 13:17
Оценка: +1
Здравствуйте, serg_mo, Вы писали:

_>Здравствуйте, Зверёк Харьковский, Вы писали:


ЗХ>>СмолТок — воистину. Именно за счет того, что сильно отличается от всего остального. Просто для раздвижения, так скзть, горизонтов. Но учить его первым — по-моему, искалечить восприятие.


_>Искалечить восприятие чего?


Тю... Шарпа, естественно.

А если серьезно — это возвращение к идее мэйнстрима. Грубо говоря, уж очень СмолТок не похож на то, куда движется развитие языков.
Именно поэтому, имхо, если начать изучать программирование вообще именно со СмолТока — потом будет тяжелее. Привыкнуть, что for — это не сообщение, принимаемое цифрой 1
FAQ — це мiй ай-кью!
Re[14]: Oberon???????????????????????????????????
От: LaptevVV Россия  
Дата: 26.10.04 13:24
Оценка: :)
Здравствуйте, Sinclair, Вы писали:

S>Итак, пока что у нас Оберон — C# идут один-в-один, за исключением void. Во всем остальном паритет.

Ага, почитайте вот это

Вопрос: Почему столь важный продукт, как операционная система, используемая на сотне миллионов компьютеров во всем мире, строится на столь гнилом фундаменте, как язык программирования, для которого нельзя написать компилятор, генерирующий эффективный и безопасный код, с тем чтобы переложить тривиальный механический труд по нудной проверке индексов массивов с человека, которому свойственно ошибаться при выполнении механических процедур, на компьютер, который именно для таких процедур и придуман?
Ответ: Потому что подавляющее большинство программистов Майкрософт, начиная с Билла Гейтса, — как бы хорошо ни была организована их работа и какими бы талантливыми индивидуумами они ни были сами по себе — классические программисты-самоучки, втянутые в круговорот компьютерной революции большими деньгами и задумывающиеся о методологии программирования только под сильной угрозой со стороны конкурентов.

В начале 2002 г. Майкрософт на месяц приостановила нормальную работу, чтобы программистский персонал мог специально сосредоточиться на проблемах безопасности и надежности программ. Если оценить количество программистов Майкрософт в 20 тысяч человек при зарплате от $150 тыс. в год и выше, то стоимость месячника повышения квалификации выйдет не меньше 250 миллионов долларов. Майкрософт в состоянии это себе позволить. Остальным, видимо, все же дешевле перейти на инструменты программирования, где проверки индексов массивов не отключаются. Впрочем, и сама компания Майкрософт в настоящее время переходит на платформу .NET, в которой главный язык программирования — т.наз. C# — смоделирован во многом, в том числе и в отношении безопасности программирования, по образцу Оберона.

Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[14]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.10.04 13:38
Оценка: -1 :)
Здравствуйте, Sinclair, Вы писали:

СГ>>1) Существуют модули

S>Что такое модули? Или это в седьмом классе понятно всем и без объяснения?

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

СГ>>2) Один модуль может импортировать другой модуль

S>Что значит импортировать?

Опять на это можно прямо пальцем показать, вот так, мол, смотрите, один модуль пользуется услугами другого модуля...

СГ>>2) Существуют классы (еще одна непонятность — что еще за классы? Классы чего? Мы в седьмом классе учимся и что с того?)

S>Верно. Что-то все-таки надо детям рассказывать.

То-то и оно!

СГ>>3) У классов есть статические методы (опять ребенку непонятно что такое статические и что такое методы, в чем разница между подпрограммами и методами?).

S>А при чем тут подпрограммы? Кто-то считает понятие подпрограммы присутствующим в детской голове прямо с рождения? Лично я в седьмом классе колбасил арканоиды безо всяких подпрограмм. Так что это — заблуждение. И вводить понятие метода ничуть не хуже, чем начинать с каких-то подпрограмм.

Метод — это подпрограмма (процедура) ассоциированная с контекстом исполнения — объектом, т.е. ввести понятие метода сложнее чем ввести понятие подпрограммы (процедуры).

СГ>>Что такое void? Почему именно Main?

S>Да. с Void придется повозиться.

Опять, то-то и оно.

S>Итак, пока что у нас Оберон — C# идут один-в-один, за исключением void. Во всем остальном паритет.


А еще за исключением class, Main, static,...
Re[15]: Oberon???????????????????????????????????
От: Kluev  
Дата: 26.10.04 13:42
Оценка: 1 (1) +1 :)
Здравствуйте, Сергей Губанов, Вы писали:

<поскипано>

S>>Итак, пока что у нас Оберон — C# идут один-в-один, за исключением void. Во всем остальном паритет.

СГ>А еще за исключением class, Main, static,...

Зачем так жарко спорить когда питон уже всех "порвал" своей простотой
Re[15]: Oberon???????????????????????????????????
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.10.04 13:49
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Ага, почитайте вот это


LVV>


Если не секрет, то скажите пожалуйста, что именно Вас рассмешило?
Re[16]: Oberon???????????????????????????????????
От: LaptevVV Россия  
Дата: 26.10.04 14:00
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, LaptevVV, Вы писали:


LVV>>Ага, почитайте вот это


LVV>>


СГ>Если не секрет, то скажите пожалуйста, что именно Вас рассмешило?

Ну, тут война, как у Макаревича в "Поезде"
А смысл-то один — жизнь. Только точка зрения разная.
Так и тут — ноги растут из одного места! А потом, четко было сказано, что Билл- непрофессионал — самоучка, поэтому подвигнуть его обратить внимание на надежность могут только происки конкурентов!
Ей-Богу, мне смешно!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[14]: Oberon???????????????????????????????????
От: cat-man-do  
Дата: 26.10.04 14:06
Оценка: -1
Здравствуйте, Sinclair, Вы писали:

СГ>>4) Как понять что Console как-то связана с приведенной выше using System;

S>Хорошо, свяжем их явно.
S>
S>class Class1
S>{
S>    static void Main()
S>    {
S>        System.Console.WriteLine("Hello World");
S>    }
S>}
S>

S>Итак, пока что у нас Оберон — C# идут один-в-один, за исключением void. Во всем остальном паритет.

В Oberon-е мне нравится _однозначность_ его конструкций. Например, то что в C# можно написать System.Console.WriteLine и Console.WriteLine _я_ уже считаю недостатком языка. Если я в программе на Oberon вижу цепочку identifier1.identifier2.identifier3, то всегда знаю что identifier1 объявлен в текущем модуле и могу быстро посмотреть что он означает. Если мне встречается Console.WriteLine в программе на C# я не смогу сразу понять что такое Console и откуда оно взялось, я в курсе, что современные IDE легко позволяют мне это определить, но это решение одного из проявлений проблемы, а не ее самой. В Delphi похожие недоработки языка приводили к необходимости, в сложных библиотеках, идентификаторов состоящих из 8-10 слов.
В Oberon невозможно обратится к полям/методам результата функции, его можно только присвоить переменной или передать в другую функцию/процедуру, после Delphi это очень раздражало, но то, что вызов метода выглядит как вызов метода (последовательности действий, возможно изменяющих переменные/поля) и отличается от обращения к полям _я_ засчитываю как достоинство языка.
Re[15]: Oberon???????????????????????????????????
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 26.10.04 14:25
Оценка:
Здравствуйте, cat-man-do, Вы писали:


CMD>В Oberon-е мне нравится _однозначность_ его конструкций. Например, то что в C# можно написать System.Console.WriteLine и Console.WriteLine _я_ уже считаю недостатком языка. Если я в программе на Oberon вижу цепочку identifier1.identifier2.identifier3, то всегда знаю что identifier1 объявлен в текущем модуле и могу быстро посмотреть что он означает.

Не факт, что это достоинство. Фактически, это означает необходимость везде использовать Fully Qualified Names. В среде с развитыми библиотеками это привело бы к идентификаторам кошмарной длины. Как вам имя класса System.Data.SqlClient.SqlConnection?
CMD> Если мне встречается Console.WriteLine в программе на C# я не смогу сразу понять что такое Console и откуда оно взялось, я в курсе, что современные IDE легко позволяют мне это определить, но это решение одного из проявлений проблемы, а не ее самой.
Ну, если так не хочется использовать короткие имена — выкинь все using. Прелесть в том, что всегда есть выбор
CMD>В Delphi похожие недоработки языка приводили к необходимости, в сложных библиотеках, идентификаторов состоящих из 8-10 слов.
Нет. В Delphi недоработка состояла в одноуровневости имен пакетов, что приводило к вынужденным конфликтам имен. И то, на самом деле всегда можно было использовать Qualified Name безо всяких десятисловных идентификаторах.
CMD>В Oberon невозможно обратится к полям/методам результата функции, его можно только присвоить переменной или передать в другую функцию/процедуру, после Delphi это очень раздражало, но то, что вызов метода выглядит как вызов метода (последовательности действий, возможно изменяющих переменные/поля) и отличается от обращения к полям _я_ засчитываю как достоинство языка.
Хм. Это на Delphi вызов метода выглядит как обращение к полю или свойству. На C# вызов метода отличается весьма характерными скобочками.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Re[9]: Oberon???????????????????????????????????
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.10.04 14:43
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>То есть сначала надо будет объяснить что такое namespace,


Необязательно

СГ> class, stati