Kакого типа языки будут использоваться лет через 20-30?

Все, что вы хотели знать о программизме, но боялись спросить.
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Kакого типа языки будут использоваться лет через 20-30?

Сообщение Marmot »

Ок, базар у нас вышел хороший по поводу C#. :-)
Кто прав, кто не прав, мы скоро увидим :-), но жизнь не стоит на месте.
И Java, и C++, и C# со временем уйдут на помойку истории.
:(
Что их заменит, какого типа языки будут использоваться лет через 20-30?
Мне нарпример нравятся Lisp-образные, Scheme IMHO - это самый логичный и элегантный язык программирования на сегодняшний день...
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Ок, базар у нас вышел хороший по поводу C#.
Ok, хорошо, что хоть что-то хорошее сделал, "сделав топик" (без этого чуйство собственой неполноценности грызёт).
Мне нарпример нравятся Lisp-образные
Завидую тебе (без иронии). Нравится-не нравится. Лисп - как вспомню, так вздрогну. Впрочем и сейчас в моём городе есть народ из бывших коллег, который до сих пор пишет на лиспе, зарабатывая в одной могутной американской конторе большие (по местным меркам) бабки. Жалко их - путь в никуда, хотя и с колбасой, да с пряниками. Плохой язык лисп.
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

vg писал(а):Плохой язык лисп.
А аргументировать? :twisted:

BTW, Я таки не про Lisp, a про Scheme ( http://www.scheme.com/tspl2d/ , http://www.drscheme.org)
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Re: Kакого типа языки будут использоваться лет через 20-30?

Сообщение ajkj3em »

flamebait чистой воды

правильный ответ - хз, depends on the moon phase
Аватара пользователя
Lepsik
Житель
Сообщения: 522
Зарегистрирован: 17 фев 2003, 18:34
Откуда: Berlin
Контактная информация:

Сообщение Lepsik »

vg писал(а): Лисп - как вспомню, так вздрогну. Жалко их - путь в
никуда, хотя и с колбасой, да с пряниками. Плохой язык лисп.
тем не менее автокад жив и живее всех живых. Правдо и то к VB скатывается

--И Java, и C++, и C# со временем уйдут на помойку истории

как массовый софт писался на С++ так и будет писаться.
А остальные "маркетинговые находки" будут занимать вренно ниши и менятся. ОС, databases то на чем писать будешь ?
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Lepsik,
тем не менее автокад жив и живее всех живых.
Это ровным счётом ничего не говорит. Автокадом занимаюсь с 10-ой версии. Программирую (вернее сказать "активно" программировал) на лиспе с той поры. Начиная с 11-версии (для i386) появилась возможность программировать задачи САПР на C (вначале ватком, затем и с мелкософтом стало возможно). Как ленивый человек, я сразу стал использовать ЭТО, т.е. программирование на С++ в связке с лиспом. Это и есть правильный САПР. Если бы можно было отказаться от лиспа вообще, то все бы только выиграли. Ты даже не представляешь какие аферы стали возможными, когда часть проги была сделана в С. Так, был сделан "самодельный ГИС в Автокад 11"..... Правда..... денег на проект дали не сразу (потом всёж дали чуток).

Вообще, было бы интересно тебе взглянуть на "среду программирования" autocad. Более смешных архитектур, наверное, ты не видел. Там .exp код подключаемых модулей, изготовленных компилятором С, ИНТЕРПРЕТИРУЕТСЯ ЛИСПОМ!!! (в доке сказано). Видал такое? В Автокаде 2000, надеюсь, уже не так (несмотрел, поскольку сечас платят за ГИС приложения). Там упор на VB. Видимо автодеск допёр, наконец, что COM - это не так уж позорно, как им казалось. (кто собрался ругаться на меня, что дескать есть API доступа к ядру автокад, то скажу, что да есть, но есть и то о чём я пишу).

А что до Лисп, я, думаю, для задач САПР он будет постепенно уходить "со сцены" с возрастанием сложности решаемых в САПР задач.
Точно так же, как Avenue ушёл вместе с последним из могикан -ArcView 3.1.
Правдо и то к VB скатывается
Это очень хорошо, что скатыватся. Ты просто рассуждаешь, как девелопер (пусть и начальник), который не связан с реальным производством (где куют, гвозди проектируют, штампуют и т.д.).
Т.е, те кто куёт, с успехом программируют на VB без помощи и дружеской поддержки программистов - это главное, и это хорошо.
Если хочешь, я могу аргументировать, но здесь это будет не интересно всем.

PS. Прости за мемуарный стиль изложения.
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

Эй, ребята, я же про язык спросил, а не о об уродских имплементациях
Вы разницу-то понимаете?
Вот чем вас не устраивет Лисп как язык, без отношения к AutoCAD-у?

Добавление:

Вот здесь интересное чтиво как раз по теме топика http://www.paulgraham.com/hundred.html :)
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Вот здесь интересное чтиво как раз по теме топика http://www.paulgraham.com/hundred.html
Читаем.
Вот чем вас не устраивет Лисп как язык, без отношения к AutoCAD-у?
Сложно сказать сразу по-серьёзному, тем более, что раздражение от маломощности языка усиливается ограничениями, свойственными реализацией в автокаде. На вскидку:

1) нетипизированность языка. Ошибки обнаруживаются только во время исполнения, а не загрузки списков предложений лисп (сама лисп-программа это список, елементы которого ограничены скобками), или компилляции псевдокода. Это - путь к ошибкам при отсутствии отладчика.

2) обработка ошибок при помощи определения функции *ERROR* - на уровне бейсика. Вернее в бейсике лучше. Здесь забудьте про обработку экзепшн, и аналогичные глупости.

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

4) более, чем скромный набор типов данных.

5) сложность, непривычность для программера "обратной нотации" записи выражений
(* a b c ...) - это привычно только инжинерам, которые программировали калькулятор MK-54.
Привычнее
a * b * c *...

6) сложность, непривычность "функциональности" в отличие от "операторности" других языков

(setq a (+ b c)) - непривычно

a = b + c - привычно

(while (< a d ) .... - непривычно

while (a < b ) .... - привычно

7) "медленность", связанная с интерпретацией, при решении вычислительных задач. Компилляция в псевдокод помогает, но не очень.

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

9) Про возможности разработки проекта в команде - да, здесь я сам испугался того, что сказал. В лиспе - каждый сам себе Питер Нортон.

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

Для решения совсем простых задач - не плох. Более того, я его использую, для загрузки того, что сделано в С++.
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

1) нетипизированность языка. Ошибки обнаруживаются только во время исполнения, а не загрузки списков предложений лисп (сама лисп-программа это список, елементы которого ограничены скобками), или компилляции псевдокода. Это - путь к ошибкам при отсутствии отладчика.
Общественность как раз до сих пор спорит какой подход лучше ( http://www.artima.com/forums/flat.jsp?f ... hread=7590 на примере Python-a)
2) обработка ошибок при помощи определения функции *ERROR* - на уровне бейсика. Вернее в бейсике лучше. Здесь забудьте про обработку экзепшн, и аналогичные глупости.

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

4) более, чем скромный набор типов данных.
Стоп, стоп, стоп!!! Мы о каком Лиспе говорим, я вот об этом http://www-2.cs.cmu.edu/afs/cs.cmu.edu/ ... cltl2.html :-)

5) сложность, непривычность для программера "обратной нотации" записи выражений
(* a b c ...) - это привычно только инжинерам, которые программировали калькулятор MK-54.
Привычнее
a * b * c *...

6) сложность, непривычность "функциональности" в отличие от "операторности" других языков

(setq a (+ b c)) - непривычно

a = b + c - привычно

(while (< a d ) .... - непривычно

while (a < b ) .... - привычно
А вот именно от это я и тащусь!!!
Программа и данные сливаются в одно понятие, становится очень просто автоматически анализировать семантику кода и генерить код в runtime :-)
С формой типа (setq a (+ b c)) все проблемы возникают из-за инерции мышления, согласись, семантически нету разницы между вызовом функции или сложением и/или присваиванием. :-)

7 )...
8 ) ...
9 )...
10)...
Брюзжание пропускаем :-)
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

ФАНТАЗИИ, ФАНТАЗИИ.

Мармот, подозреваю, что этим постом я могу несколько навредить себе, но азарт – сильнее.

Во-первых, о твоих комментариях моего поста. В принципе я согласен по всем пунктам твоих замечаний. Прошу только учесть два обстоятельства –то, что мои знания о программировании весьма скромные, и что там я постил «навскидку». На этом мои оправдания заканчиваются.
Программа и данные сливаются в одно понятие, становится очень просто автоматически анализировать семантику кода и генерить код в runtime
Безусловно, такого не делает, на сколько мне известно, пока ещё ни один компилятор;). Но вот скажи, не преобладает ли здесь (и только здесь), когда ты говоришь о крутости генерации кода в runtime, «цеховой» интерес и стереотип. Не о том ли ты, что это круто с точки зрения возможности передачи лисп «конверта» на удалённую машину, для того, что бы выполнить там генерацию и, собственно, выполнения кода? Разумеется, я имею здесь в виду чисто концептуальный аспект. Пусть живёт жава.

Если ты «не договариваешь» ЭТО, то ведь мы пытаемся говорить в этом топике «глобально». Не привязываясь пока к прикладным ветвям отраслям, что ли, технологий.

С формой типа (setq a (+ b c)) все проблемы возникают из-за инерции мышления, согласись, семантически нету разницы между вызовом функции или сложением и/или присваиванием.
1) Соглашусь.
2) По поводу привычности-непривычности для меня лично такой вопрос ВООБЩЕ не стоит. Поскольку часто (к сожалению, почти всегда) вопрос ставится несколько иначе.

Теперь о статье. Впечатление может быть разным, в зависимости от того, что уже известно об этом авторе. Я, конечно, только что посмотрел, кто это. Считай, что это моё мнение о статье, как если бы мне положили на стол листок со статьёй без «автора».

Нет «подозрений» в части его знания сабж. Мне только не нравится мемуарный стиль изложения. В России так пишет профессура (на пенсии). Мы с автором статьи люди разных культур и устоев. У нас просто не принят такой лёгкий стиль изложения технических аспектов. Принят - если только это популярная литература, типа «Наука и жизнь». Мне больше импонирует стиль изложения, например статей в MSDN.

Очень даже не злая шутка:
Вспоминая «золотые времена», можно сказать: «Работа товарища представляется интересной и перспективной. Рекомендуется доработать и улучшить. Рекомендуем продолжить исследования. Следующий раз заслушать товарища через …. Прошу голосовать, товарищи. Кто за?».


Теперь собственно язвительность в части некоторых утверждений автора статьи и злые шутки по поводу стиля построения статьи технического плана. Затем я выскажусь.
What kind of programming language will they use to write the software controlling those flying cars?
Ясно. Про бортовые компьютеры. Готовлюсь услышать дальше о битах, джампах и др. асмовском безобразии.
We can see this happening already.
Нет никакого, dead-end. Не наблюдается. Кто это позволит? Не MS ли, с его неуёмным аппетитом, и подростковой активностью созревающего мужчины. Счёт-то на миллиарды.
When I say Java won't turn out to be a successful language, I mean something more specific: that Java will turn out to be an evolutionary dead-end, like Cobol.
Конечно, уйдёт, всё уйдёт. Прописные истины ни кому не интересны.
Если говоришь: «Яве хана, C++ хана», то необходимо аргументировать. А так, шаманство. Общие рассуждения «дарвиниста».
Второе, что хочу отметить - автор несколько заблуждается относительно смерти Cobol, по крайне мере в Канаде. На самом деле, есть в Канаде потребность в программерах Cobol. Да-да. Откуда знаю – не скажу.
The Fortran branch, for example, seems to be merging with the descendants of Algol.
Ну, так и назвать бы надо достойного «наследника» (ков), а то так, голословно просто «шашечки» какие-то получаются.

Any programming language can be divided into two parts: some set of fundamental operators that play the role of axioms, and the rest of the language, which could in principle be written in terms of these fundamental operators.
Автор говорит здесь и чуть ниже о «фундаментальности» операторов, что мол всё остальное –само-собой получится. Не получится, поскольку даже в моём сурогатно-извращённом представлении минимальным «набором» является множество типов данных и операций над ними.

В части операторов многие алгоритмические языки схожи. Что с того? Java вообще имеет С - подобный синтаксис (смешно – я ведь не знаю джавы) . Из схожести операций не вытекает необходимо и достаточно схожести языков программирования. Any – в начале абзаца, и декларации, как бы «гарантирует» автора (как ему кажется) в логичности всех его дальнейших построений. Ничего подобного. Никаких авансов вам, дорогой товарищ, не будет.

I think the fundamental operators are the most important factor in a language's long term survival.
Ну, да int нельзя складывать со строкой.
The rest you can change. It's like the rule that in buying a house you should consider location first of all. Everything else you can fix later, but you can't fix the location.
Ой мама родная. Ну, и дела наши философские, вот уже до аналогии с
хауз доехали. Я на Канадском форуме и здесь я в гостях, поэтому рот закрыл. Креплюсь.
I have a hunch that the main branches of the evolutionary tree pass through the languages that have the smallest, cleanest cores. The more of a language you can write in itself, the better.
Это только «hunch», как и говорит автор. Примеры – в студию. Если говоришь, что смол-коре родит всё остальное в языке XXI века, так приведи примеры. «The more of a language you can write in itself, the better» - кроме того, ЭТО где-то мы уже слышали. Мож сослаться на «соавторов»?
Won't we just tell computers what we want them to do?
Заметка в «Науке и жизнь». (шутка)
Languages evolve slowly because they're not really technologies.
Программирование, как процесс изготовления коммерческого продукта с одной целью - заработать – это технология. Программировать можно технологично, или нетехнологично. Делая вашу фирму благополучной, или превращая её в школу программирования для нетехнологичных программистов.
Languages are notation.
Ну, а что…. В принципе и согласится можно. Но только что из этого?
I learned to program when computer power was scarce. I can remember taking all the spaces out of my Basic programs so they would fit into the memory of a 4K TRS-80.
Когда деревья были большими…. Точно надо было с С начинать, а не с Бейсика. (злая шутка)
Most data structures exist because of speed. For example, many languages today have both strings and lists. Semantically, strings are more or less a subset of lists in which the elements are characters. So why do you need a separate data type? You don't, really. Strings only exist for efficiency. But it's lame to clutter up the semantics of the language with hacks to make programs run faster. Having strings in a language seems to be a case of premature optimization.

«Most data structures exist because of speed.» -
Мне удобнее работать со структурированными данными. Автор настолько крут, что мыслит сразу в шестнадцатиричном коде. Ясно дело – ему структуры не нужны. (очень злая шутка)
Дальше в этом абзаце!!! не могу комментировать – уже разболелось сердце.
The right way to solve that problem, I think, is to separate the meaning of a program from the implementation details. Instead of having both lists and strings, have just lists, with some way to give the compiler optimization advice that will allow it to lay out strings as contiguous bytes if necessary
Да это прямо лисп-повец какой-то!!!
Ну, а про some way to give the compiler optimization – это вообще изящно. Подумаешь, какая мелочь – просто some way.

(1) the hundred-year language could, in principle, be designed today, and (2) such a language, if it existed, might be good to program in today. When you see these ideas laid out like that, it's hard not to think, why not try writing the hundred-year language now?
Рады стараться. Ух…

Мои соображения:

1) надо бы подумать о мотивации. А зачем? А почему язык XXI века должен быть каким-то особым?

2) какие задачи надобно решать? То, что не будет ситуации, когда присутствует только единственный язык (все языки ушли в небытие, остался один горемышный) – на мой взгляд, ясно. Надоб определиться о каких задачах, а значит и языковых средствах мы говорим. И это действительно посильно аналитикам уже сегодня (автор той статьи призывает начинать уже сегодня). Анализировать тенденции развития технологий, прогнозировать то, какие задачи появятся. Тогда аналитики могут сказать математикам и программистам – «копайте здесь».

3) профан или почто профан я в написании программ. В части написания языков программирования - вообще ничего не понимаю (примеры из книжек по С по написанию интерпретатора Бейсика – не в счёт). Однако думаю, что бОльшая роль будет математиков. Мы не знаем, какие будут носители информации. Мы не знаем, что можно будет складывать? Будет ли представление чисел только двоичным? Что можно будет легко хранить, извлекать, преобразовывать из запоминающих устройств – только числа или реализации неких абстракций.

4) спроектируют ли объектно-ориентированный язык, позволяющий реализовать объекно-ориентированный код? Да-да. Как известно, нет пока ещё ОО-кода и ООП существует только на стадии компиляции. В рантайм никаких объектов не существует. Есть отдельно сегмент кода, сегмент данных в которых «объекты» не живут. Живут vtbl, которые компилятор строит более или менее умно в зависимости от этих самых компиляторов. Если честно, я даже не знаю сейчас, надо ли это? Например, то что COM-подобные технологии, претендующие на "настоящие объекты" – вещь!!! (по крайней мере для меня) – это точно. Если это будет похожим образом реализовываться компилятором (т.е. в рантайме будут жить и размножаться объекты), может, это приоткроет пути решения многих задач (лёгкое мультипрограммирование, кросс-платформенность)?

Как думаете?

PS. Не судите меня строго. Смотрел вчера «Джуманджи» (хороший фильм). Отсюда и фантазии.
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

2vg
Ну ты разошёлся ....
Круто.
У тебя в Канаде будет всё ОК, не волнуйся, ты уж мне поверь...
По делу, ты в многом прав, с точки зрения современного программиста :-)
Создавая эту тему, я потом собирался подвести это к другому вопросу - что будет "next big thing" в IT.
На мой взгляд на ожидает несколько(5-10) лет относительного застоя, традиционного программирования на C++/C#/Java
А вот потом начнёт вызревать реальный AI, и это будет покруче Интернет-бума!
И, на сегодняшний день, Лиспобразные выглядят лучшими кандидатами на лидерство это процессе

ЗЫ
Вообще-то я тут откровенный флейм развожу, пользуясь служебным положением... :oops:

ЗЗЫ
А то скучно здесь, на форуме... :lol:
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

vg писал(а): 4) спроектируют ли объектно-ориентированный язык, позволяющий реализовать объекно-ориентированный код? Да-да. Как известно, нет пока ещё ОО-кода и ООП существует только на стадии компиляции. В рантайм никаких объектов не существует. Есть отдельно сегмент кода, сегмент данных в которых «объекты» не живут.
Дык есть уже Java/C#, а ты не знал? :lol:
Alexander Ch.
Завсегдатай
Сообщения: 284
Зарегистрирован: 04 мар 2003, 08:49
Откуда: Hamilton, Ontario

Сообщение Alexander Ch. »

О Коболе - конечно, он есть, куда он денется?
До тех пор, пока стоят AS400 - RPG и Cobol - бессмертны!

Деклаймер РПГ - это НЕ ручной противотанковый гранатомет, о котором так много говорили военруки.
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

Alexander Ch. писал(а):О Коболе - конечно, он есть, куда он денется?
До тех пор, пока стоят AS400 - RPG и Cobol - бессмертны!

Деклаймер РПГ - это НЕ ручной противотанковый гранатомет, о котором так много говорили военруки.
Сводка ГРУ:
Из хорошо осведомлённых источников стало известно что широко известный в узких кругах IBM shop - HSBC bank, замешанный в скандальной привязанности к RPG, планирует в ближайшее время переместить большинство своих appliactions na Java/IBM Websphere platform.

ЗЫ Совершенно серьёзно, BTW, и именно на AS400 :lol:
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Marmot,
Спасибо на добром слове.
Вообще-то я тут откровенный флейм развожу, пользуясь служебным положением...
Ну, не такой уж это и флейм. Лично мне было очень даже и интересно.
4) спроектируют ли объектно-ориентированный язык, позволяющий реализовать объекно-ориентированный код? Да-да. Как известно, нет пока ещё ОО-кода и ООП существует только на стадии компиляции. В рантайм никаких объектов не существует. Есть отдельно сегмент кода, сегмент данных в которых «объекты» не живут.

Дык есть уже Java/C#, а ты не знал?
1) Видишь, как я тебя!!! Ха-ха. Ты сказал, что я наивный поверил в твой флейм. Наивный !!!! А я сделал так, что ты сказал, то, что я хотел, чтоб ты сказал про C#. 1:1 получается. (сам я не говорил, т.к. боялся, что побъют) :lol:
Шучу, конечно.

2) Ты прав. Java - не знаю. C# - посмотрел, только несколько дней назад, после поста Папы Карло.

3) Засела, конечно, эта заноза, в части промежуточного слоя ПО (для кого джава-машина, для кого MSIL/CLR). Но, кстати, С++ код в нете тоже можно компилирвать в managed код (лучше бы его называть псевдокодом) для платформы .NET. Но в отличие от C# можно изготавливать и обычный unmanaged код. В C# по моему такой возможности нет. Мало читал пока. Там только managed-код, вроде.

4) Когда я говорил о существовании "объектно-ориентированого" кода в "фантазии", я говорил только то, что говорил. Смотри Выше, в моём посте написано, что сегмент кода - отдельно, сегмент данных - отдельно. Нету-ти слоёных пирогов, т.е. нету такого отображения кода, когда и данные и код функций хранятся вперемешку при компиляции МАШИННОГО КОДА для Win. Тараканы и котлеты - отдельно. Или я не прав? Я говорил только о том, что есть иллюзия некоторых С++ - Delphi -программеров, думающих что, дескать, реально существуют в машинном представлении их ООП-модели, в которых есть нечто, что инкапсулирует и данные и методы (функции). Пока, что, если я правильно понимаю ситуацию, это возможно только при условии наличия ПО промежуточного слоя. А в будущем?
Ответить