Гэвин Кинг (Gavin King), основатель проектов Hibernate (http://www.hibernate.org/) и Seam (http://seamframework.org/), раскрыл (http://blog.talawah.net/2011/04/gavin-king-unviels-red-hats-...) на конференции QCon (http://www.qconferences.com/) некоторые детали, связанные с проектом Ceylon, нацеленным на создание нового промышленного языка программирования и связанного с ним комплекта разработки (SDK), претендующих на роль замены Java. Проект уже два года развивается в компании Red Hat в условиях большой секретности. Информация о языке Ceylon изложена в двух презентациях: "Введение в Ceylon (https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&...)" и "Система типов Ceylon (https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&...)".
Судя по опубликованной информации язык Ceylon нацелен ...URL: http://blog.talawah.net/2011/04/gavin-king-unviels-red-hats-...
Новость: http://www.opennet.me/opennews/art.shtml?num=30225
> Статическая типизацияДа! (получил оргазм)
чай цейлонский...
:= для присвоения как-то гаденько выглядит
Надо было сделать ":)" для присвоения
Заботятся о студентах, путающих = и ==. Керниган и Ритчи были о студентах лучшего мнения
да лана. эт еще оба терпимые варианты но сиплюснутое обращение к пропертям и методам "->" это точно ппц.
Это PHP-шное, в сях стрелка нужна только для обращение через указатель. Хотя у вас всегда есть выбор: *(obj_ptr).obj_method () вместо obj_ptr -> obj_method ()
А в пхп оно откуда взялось по твоему? Кроме того, до пхп это было в Перле, откуда этот ваш пхп и выполз в страшных муках.
> А в пхп оно откуда взялось по твоему? Кроме того, до пхп
> это было в Перле, откуда этот ваш пхп и выполз в
> страшных муках.вот люди блин.. чем пхп не угодил?? что C# лучше что ли?
> вот люди блин.. чем пхп не угодил?? что C# лучше что ли?А то! Несравненно лучше.
всё ещё хуже, надо писать (*obj_ptr).obj_method() т.к. точка имеет больший приоритет чем разыменование указателя.
и таки -> появилось ещё в С по тем же причинам.
написано же "сиплюснутое" - С++. Там почти всегда указатель на объект.
Там почти всегда ссылка
>Там почти всегда ссылкаНу вот, напугал выше отпостивших. Они этого еще не проходили.
Чем стрелка не устраивает? Другое дело что это два символа.
Керниган и Ритчи о людях вообще были не лучшего мнения. Один символ * и сколько операций в зависимости от контекста?) Умножить, указатель, разыменование указателя... Гуманоиды блин))
> Керниган и Ритчи о людях вообще были не лучшего мнения. Один символ
> * и сколько операций в зависимости от контекста?) Умножить, указатель, разыменование
> указателя... Гуманоиды блин))Они думали что люди умеют думать. Но некоторые говнокодеры успешно доказывают что они всего лишь специально обученные мартышки за клавиатурой. Даже не гуманоиды, а всего лишь побочный продукт эволюции обезьян.
> Они думали что люди умеют думать.Они не думали. Думали бы - синтаксис языка был бы продуманней. Как впрочем и весь язык.
> Но некоторые говнокодеры успешно доказывают что
> они всего лишь специально обученные мартышки за клавиатурой.Это ты про сишников? Стопудов. Недаром есть целый раздел в википедии об ошибках программистов на этом языке.
> Они не думали. Думали бы - синтаксис языка был бы продуманней. Как впрочем и весь язык.Они вообще его лично для себя пилили, у них там какая-то игруха не пошла на новом компьютере, а переписывать на ассемблере на новой архитектуре не хотелось. То, что на него сразу набросилось сообщество, означает, что не нашлось никого умнее, способного создать язык лучше. До сих пор вон в промышленных масштабах пишут, хотя недостатков в нем наковыряли предостаточно
>> Они не думали. Думали бы - синтаксис языка был бы продуманней. Как впрочем и весь язык.
> То, что на него сразу набросилось сообщество, означает,
> что не нашлось никого умнее, способного создать язык лучше. До сих
> пор вон в промышленных масштабах пишут, хотя недостатков в нем наковыряли
> предостаточноsimula вроде была. Хотя реализация хавала ресурсы вроде. Lisp тоже. Да, все таки, Си для своего времени был лучшей монетой, наверное. Да и сейчас в системном программировании неплох. Хотя замены есть.
> simula вроде была. Хотя реализация хавала ресурсы вроде. Lisp тоже. Да, все таки, Си для своего времени был лучшей монетой, наверное. Да и сейчас в системном программировании неплох. Хотя замены есть.ц в старину применялся как раз мало (как и юникс собственно). на приличных тогдашних компах (например ibm мейнфреймах или бесмах) писали на алголе, фортране, коболе, пл/1. а на маленьких на ассемблере да бейсике.
> simula вроде была. Хотя реализация хавала ресурсы вроде. Lisp тоже. Да, все таки, Си для своего времени был лучшей монетой, наверное. Да и сейчас в системном программировании неплох. Хотя замены есть.ц в старину применялся как раз мало (как и юникс собственно). на приличных тогдашних компах (например ibm мейнфреймах или БЭСМ) писали на алголе, фортране, коболе, пл/1. и оси там были не юникс). и писали их не на ц
IBM originally wrote OS/360 in assembly language. Later on, IBM wrote some OS/360 code in a new language, Basic Systems Language (BSL),[9] derived from PL/I. A large amount of the TSO code in Release 20 was written in BSL.
а на маленьких писали на ассемблере да бейсике. памяти то там все равно не было, большую прогу не напишешь, а маленькую почти все равно на чем.
> Они вообще его лично для себя пилили, у них там какая-то игруха не пошла на новом компьютере, а переписывать на ассемблере на новой архитектуре не хотелось.Ну не совсем - Томсон и ритчи (не знаю откуда там Керниган потом вылез) делали ось. Хотя в процессе сделали и игрушку, но именно на ассемблере
During the same period, Thompson wrote a game on MULTICS called Space Travel that enabled a pilot to fly a ship around a simulation of the solar system and land on the planets and moons. When their access to MULTICS wound down, Thompson translated the game into FORTRAN on the GECOS operating system on a GE-635 computer. However, the display movement was jerky, and access to GECOS cost $75 an hour, so eventually Thompson found a little-used PDP-7 computer with a good display processor at Bell Labs. Thompson and Ritchie then ported Space Travel to the PDP-7's assembly language using a cross-assembler running on GECOS, and then transferred the program to the PDP-7 using punched paper tapes.
>То, что на него сразу набросилось сообщество, означает, что не нашлось никого умнее, способного создать язык лучше. До сих пор вон в промышленных масштабах пишут, хотя недостатков в нем наковыряли предостаточно
Ц создавался для работы на машине типа
They obtained the PDP-11 in late summer, and began transferring Unix from the PDP-7. The first PDP-11 version used 16 KB of memory for the operating system, and provided 8 KB of memory for user programs.
Отсюда его так называемый 'лаконичный' синтаксис. Просто памяти не хватало, и чем короче текст тем лучше. Длинных прог для таких компов соответственно не писали, больших команд разрабов тоже не было и т.п. поэтому на читаемость-понимаемость наплевали. Три собственных строчки сам автор как-нибудь разберет и отладит. Ну и конечно никто не думал что это добро проживет столько времени и создаст столько проблем о которых тогда и подумать не могли.
Ну а в итоге имеем что имеем. Но слава богу все таки все больше уже Ц уже удел маргиналов.
>Ну а в итоге имеем что имеем. Но слава богу все таки все больше уже Ц уже удел маргиналов.Скорее, язык элиты, которая реализует проекты, требующие производительности.
>>Ну а в итоге имеем что имеем. Но слава богу все таки все больше Ц уже удел маргиналов.
> Скорее, язык элиты, которая реализует проекты, требующие производительности.Если бы скорость была показатем элитности, то самыми элитными были бы ассемблерщики. По оплате ц программеры вроде тоже не самые элитные. Скорость (именно исполнения, поскольку бывает еще скорость разработки, скорость отладки, скорость переделки существующего чужого кода и т.п. где ц не тянет) это просто еще одна ниша. Важная да, но небольшая.
На практике на ц скоро будут нужны только бесплатные разработчики линукс ядра, и, может быть, для самых-самых убогих микроконтроллеров (хотя даже тут есть варианты типа http://www.mikroe.com/eng/products/view/227/mikropascal-pro-.../).
А в бейсике "=" и для сравнения и для присвоения, и никто не путает.
> А в бейсике "=" и для сравнения и для присвоения, и никто не путает.ну так в бейсике нет аналога конструкций if(i=10) или for(i=0,i=10,i++)...
кстати конструкции for(i>10,i=0,i++), for(i++,i==10,i++), for(i==0,i=10,i++) тоже все синтаксически правильны т.е. на самом деле в ц цикла с постоянным количеством повторов просто нет, внутри for пишется не количество циклов, а что угодно, и это все будет допустимо
>> А в бейсике "=" и для сравнения и для присвоения, и никто не путает.
> ну так в бейсике нет аналога конструкций if(i=10) или for(i=0,i=10,i++)...Почему нет? If A=10 Then...
Тут сравнение,а выше говорят про присвоение,результат которого true,если не последнее значение не 0
> Заботятся о студентах, путающих = и ==.Заботятся о компиляторах, путающих = и ==. А Керниган и Ритчи об этом так и не догадались.
>> Заботятся о студентах, путающих = и ==.
> Заботятся о компиляторах, путающих = и ==. А Керниган и Ритчи об
> этом так и не догадались.Почему компилятор VB не путает?
В VB присваивание не является операцией
> В VB присваивание не является операциейЭто как это не является? А чем тогда оно является?
Операцией, возвращающей значение. Ну, то есть не является такой операцией.
> Почему компилятор VB не путает?нет соответствующих опасных операций (см. мой коммент выше)
Так то ж Керниган и Ритчи! А в джаве вообщето их попутать невозможно - if (x=y) - это сразу syntax error
> Так то ж Керниган и Ритчи! А в джаве вообщето их попутать невозможно - if (x=y) - это сразу syntax errorну так там булев тип есть, а в ц, как обычно, все не для обезьян сделано, а чтоб мозги головоломками поупражнять - выражение булево, а результат целый, да
The C++ bool type was not designed to be typesafe. It is treated as just another integral type, with builtin implicit conversions to numeric types.вот кстати забавная попытка сделать нормальный булев тип на ц++
A Typesafe Boolean Class for C++
We try to implement a boolean class for C++ that has the same sensible semantics as the Java boolean type.
http://www.wambold.com/Martin/writings/typesafe-bool.htmlпонадобились конструкции вида
Bool (T x, typename Constraint<ExplicitlyConvertible<T>::value>::Type = 0): val_ (x)но проблемы то не решает, поскольку в for и if то все останется по старому
>> Так то ж Керниган и Ритчи! А в джаве вообщето их попутать невозможно - if (x=y) - это сразу syntax error
> ну так там булев тип есть, а в ц, как обычно, все
> не для обезьян сделано, а чтоб мозги головоломками поупражнять - выражение
> булево, а результат целый, даКак и в бейсике. Что не мешает компилятору бейсика ничего не путать.
> чай цейлонский...
> := для присвоения как-то гаденько выглядитА вот это выглядит ещё более гадко:
Assignment to a variable value ... using the := operator. The = specifier is used only for specifying immutable values.
Даёшь 12456 разных операторов присваивания.
Вообще для сторонников свободы выбора следует ввести спец. декларацию - в каждом файле - "здесь используется операция присваивания вида ***" и дальше соответственно:
String x *** y.
И пусть всем будет удобно. А то как-то "=" слишком просто и обыденно.
> А вот это выглядит ещё более гадко:
> Assignment to a variable value ... using the := operator. The =
> specifier is used only for specifying immutable values.Это как раз нормально, если я правильно понял. Полная совместимость с джавой по семантике плюс особый оператор := который можно и не использовать, если чо
Судя по тексту, ровно наоборот. Т.е. все автоматом immutable.
Паскаль напомнило....
это было про >Использование для присвоения значений оператора ":=";
>Использование для присвоения значений оператора ":=";Ужасно. Присвоение, наверно, самая частая операция и писать два символа, еще и так расположенных на клавиатуре не удобно.
согласен убого. хотя если IDE будет по нажатию на : сама добавлять = то тыкать в кнопки много не нужно будет.
Можно присвоение сделать через одно двоеточие. Этот знак в чистом виде употребляется редко (только в составе всяких ::), а выглядит неплохо, как-то даже по-функциональному, не как присваивание, а как определение
Совершенно дебильный подход. Именно так и подходили к вопросу синтаксиса перла.Можно консервным ножом машину открывать. Можно даже такие консервные ножи придумать, что это будет действительно удобно. Если можно, не значить нужно. "Выглядит неплохо" - ппц, нет слов.
Что сказать то хотел?
я хотел сказать, что делать присвоение двоеточием, тогда как везде и всегда используется "=" это в высшей мере глупо. Когда при рассматривается чисто техническая сторона дела, без учета всего остального и рождаются такие высеры как, например, некоторые конструкции перла или конфиг senmail'а.
Если = везде используется как присваивание, то что везде используется для операции сравнения? В С-подобных языках это всякие == и ===, что служит поводом вечного срача об ошибках программистов. Уж лучше тогда присваивание двоеточием, чем путаница между присваиванием и сравнением, хотя лично я в этом никакой проблемы не вижу
> В С-подобных языках это всякие == и ===, что служит поводом вечного срача об ошибках программистов.А это точно программисты, а не индийские обезьяны или студенты первокурсники? Как можно перепутать булевую операцию "==" и присвоение к переменной/объекту через "=". В Java/C# так вообще не получится перепутать, компилятор не даст.
>> В С-подобных языках это всякие == и ===, что служит поводом вечного срача об ошибках программистов.
> А это точно программисты, а не индийские обезьяны или студенты первокурсники? Как
> можно перепутать булевую операцию "==" и присвоение к переменной/объекту через "=".
> В Java/C# так вообще не получится перепутать, компилятор не даст.так и можно, потому что слово "равно" двусмысленно. если бы языке было два слова для "если а равно бэ" и "пусть а равно бэ", нечем было бы заморачиваться
а так - проблема есть и будет
Потому что в С++ операция присвоения(как и сравнения)тоже возвращает результат,который неявно и преобразуется в булев и вместо
a=b;
if(a)
можно написать
if(a=b)
Ты нам тут на Perl не кати бочку. Все там нормально с синтаксисом, просто есть люди которым не дано его понять. :)
Ага, только не нужно синтаксис перла вставлять куда ни попадя. Скажем, есть один крайне дурацкий язык с элементами синтаксиса перла. И эти элементы в нём явно не делают его лучше. :)
> Скажем, есть
> один крайне дурацкий язык с элементами синтаксиса перла. И эти элементы
> в нём явно не делают его лучше. :)Если вы про PHP, то напрашивается вывод, что синтаксис перла приносит счастье :)
>>Использование для присвоения значений оператора ":=";
> Ужасно. Присвоение, наверно, самая частая операция и писать два символа, еще и
> так расположенных на клавиатуре не удобно.Кого-кого, а анонимов ужасает синтаксис) Потолок обсуждения возможностей и перспектив языка)
>анонимов ужасает синтаксис)Интересно, а что анонимы думают про принудительно-изяшные отступы питона ;)?
З.Ы. придумать бы что-нибудь такое, что бы заставлять кодеров по-чаще втыкать разумные, и человеко-читаемые комментарии, как это получилось с форматированием в питоне :)
> Интересно, а что анонимы думают про принудительно-изяшные отступы питона ;)?их думки выражаются двумя словами: тролль и батхёрт!)
> З.Ы. придумать бы что-нибудь такое, что бы заставлять кодеров по-чаще втыкать разумные,
> и человеко-читаемые комментарии,вот насчёт комментариев должна быть политика среди сообщества какого-то языка. Кстати в модуле программировал недавно, есть опция для проверки чистоты и ясности кода. Это не считая самого синтаксиса, который и так просто как три копейки. :)
P.S. скучаю по временам ассемблера 486, когда из комментариев делали просто шедевр писанины, и всё было понятно, и код был красивый, как картина)
>>анонимов ужасает синтаксис)
> Интересно, а что анонимы думают про принудительно-изяшные отступы питона ;)?
> З.Ы. придумать бы что-нибудь такое, что бы заставлять кодеров по-чаще втыкать разумные,
> и человеко-читаемые комментарии, как это получилось с форматированием в питоне :)Придумать только одно. Зарплату платить нормальную нормальным программистам. А на быдло зарплату только быдлокод и получишь.
Питон убог. И не только отступами. И я не думаю, что комментарии станут более человекочитаемыми, если их необходимость мотивируется только синтаксисом, а не чем-то более материальным.
Просто бесит, когда приходится каждый раз задумываться о том, как строку в нижний регистр перевести: strtolower/lc/lcase/toLowerCase, или как исключение словить.
> Придумать только одно. Зарплату платить нормальную нормальным программистам. А на быдло
> зарплату только быдлокод и получишь.Это не всегда так. Разгильдяйство в крови у многих, и писать комментарии зачастую неохота не только по материальным причинам)
> Питон убог. И не только отступами.
По крайней мере один из самых красивых, лаконичных и стройных.
> И я не думаю, что комментарии
> станут более человекочитаемыми, если их необходимость мотивируется только синтаксисом,
> а не чем-то более материальным.а как по мне, так человек либо пишет грамотно, либо нет. И вопрос денег, материальная составляющая здесь канает как отмазка.
> Просто бесит, когда приходится каждый раз задумываться о том, как строку в
> нижний регистр перевести: strtolower/lc/lcase/toLowerCase, или как исключение словить.пишешь сразу на многих языках?)) быдлокодер :) Понятно почему ты отмазываешься что платили бы больше - писал бы грамотней :)
>> Придумать только одно. Зарплату платить нормальную нормальным программистам. А на быдло
>> зарплату только быдлокод и получишь.
> Это не всегда так. Разгильдяйство в крови у многих, и писать комментарии
> зачастую неохота не только по материальным причинам)Я имею в виду, что нормальный программист и так будет писать комментарии. А если код хреновый, то не потому, что "нормальному программисту мало заплатили", а потому, что наняли дебила, сэкономив денег.
>> Питон убог. И не только отступами.
> По крайней мере один из самых красивых, лаконичных и стройных.На вкус и цвет. Вот ну никак мне не понять, зачем было придумывать def, except, from ... import и прочие словечки и фразочки, которые не объяснить ничем, кроме как незнанием товарищем Гвидо английского языка.
>> И я не думаю, что комментарии
>> станут более человекочитаемыми, если их необходимость мотивируется только синтаксисом,
>> а не чем-то более материальным.
> а как по мне, так человек либо пишет грамотно, либо нет. И
> вопрос денег, материальная составляющая здесь канает как отмазка.Нет. Не канает. Канает только результат. А результат обычно прямо пропорционален вложенным средствам.
Хотя да, если для души пишешь... но тут опять же, не думаю, что главный стимул комментировать - это синтаксис.>> Просто бесит, когда приходится каждый раз задумываться о том, как строку в
>> нижний регистр перевести: strtolower/lc/lcase/toLowerCase, или как исключение словить.
> пишешь сразу на многих языках?)) быдлокодер :) Понятно почему ты отмазываешься что
> платили бы больше - писал бы грамотней :)Я пишу и так грамотно. А на многих языках пишу (и говорю) потому, что знаю их. Иногда по очереди, иногда и сразу. И горжусь этим. Вообще, работая в unix, приходится знать как минимум десяток ЯП. И чем больше их знаешь, тем шире кругозор и выше интеллект. :)
А то, что ты знаешь, пусть и хорошо, один питон, не даёт тебе права сравнивать его с другими.
> Я имею в виду, что нормальный программист и так будет писать комментарии.
> А если код хреновый, то не потому, что "нормальному программисту мало
> заплатили", а потому, что наняли дебила, сэкономив денег.Комментарии не всегда оправданы. Если код не нуждается в поддержке, write only, сжатые сроки, и документация не требуется? Не будь категоричен.
>>> Питон убог. И не только отступами.
>> По крайней мере один из самых красивых, лаконичных и стройных.
> Ассемблер лучше.Машинный код, перфокарты...
> Я пишу и так грамотно. А на многих языках пишу (и говорю)
> потому, что знаю их. Иногда по очереди, иногда и сразу. И
> горжусь этим. Вообще, работая в unix, приходится знать как минимум десяток
> ЯП. И чем больше их знаешь, тем шире кругозор и выше
> интеллект. :)О боже, твоё ЧСВ осветило сейчас прям все вокруг в моей комнате.
Во первых, языки надо знать основательно, знать их философию, узкие и сильные места, и использовать все его возможности. Только недавно ты распинался что иногда тормозишь не зная как перевести строку в нижний регистр или словить исключение - а тут уже трясешь интеллектом :) То что ты называешь интеллектом - простой быдлокодинг. Ты лишь осваиваешь синтаксис языков. И пишешь быдлокод везде одинаковый, не зная все тонкости языка, найлучший путь решения в данной реализации, и прочее, изучение которых требует времени, сил, усидки и мотивации.> А то, что ты знаешь, пусть и хорошо, один питон, не даёт
> тебе права сравнивать его с другими.Мне не нужно знать стопицот тыщ языков) Но твоё мнение очень важно для меня, ага)
Флейм? :)>> Я имею в виду, что нормальный программист и так будет писать комментарии.
>> А если код хреновый, то не потому, что "нормальному программисту мало
>> заплатили", а потому, что наняли дебила, сэкономив денег.
> Комментарии не всегда оправданы. Если код не нуждается в поддержке, write only,
> сжатые сроки, и документация не требуется? Не будь категоричен.Да, но причём здесь в итоге синтаксис? Получается, что синтаксис определяет и сроки, и документацию? :)
>>>> Питон убог. И не только отступами.
>>> По крайней мере один из самых красивых, лаконичных и стройных.
>> Ассемблер лучше.
> Машинный код, перфокарты...Я уже исправил свой комментарий. Но ассемблер всё равно лучше))
>> Я пишу и так грамотно. А на многих языках пишу (и говорю)
>> потому, что знаю их. Иногда по очереди, иногда и сразу. И
>> горжусь этим. Вообще, работая в unix, приходится знать как минимум десяток
>> ЯП. И чем больше их знаешь, тем шире кругозор и выше
>> интеллект. :)
> О боже, твоё ЧСВ осветило сейчас прям все вокруг в моей комнате.Сам-то гуру. "Питон один из самых траливали языков, потому что он единственный, который ты знаешь". Так?
> Во первых, языки надо знать основательно, знать их философию, узкие и сильные
> места, и использовать все его возможности. Только недавно ты распинался что
> иногда тормозишь не зная как перевести строку в нижний регистр или
> словить исключение - а тут уже трясешь интеллектом :) То что
> ты называешь интеллектом - простой быдлокодинг. Ты лишь осваиваешь синтаксис языков.
> И пишешь быдлокод везде одинаковый, не зная все тонкости языка, найлучший
> путь решения в данной реализации, и прочее, изучение которых требует времени,
> сил, усидки и мотивации.Ты конечно знаешь питон очень основательно. А уж тем более ты знаешь всё про быдлокодинг. Но больше всего ты знаешь про то, чем я занимаюсь, и когда и где я торможу и что я знаю и нет :) Ты - это я?
>> А то, что ты знаешь, пусть и хорошо, один питон, не даёт
>> тебе права сравнивать его с другими.
> Мне не нужно знать стопицот тыщ языков) Но твоё мнение очень важно
> для меня, ага)Прежде чем на личности переходить, подумай. Хотя да, тебе наплевать, что о тебе думают.
> Флейм? :)ты что, беседа конечно же ;)
> Да, но причём здесь в итоге синтаксис? Получается, что синтаксис определяет и
> сроки, и документацию? :)Синтаксис важен в описании возможностей языка. Который и влияет на сроки, и документацию. Помнится Пол Грэм писал об этом очень интересную заметку.
> Я уже исправил свой комментарий. Но ассемблер всё равно лучше))
Угу, но лучше бы не исправлял кстати ;) Потому что тянется from .. import ; import; MODULE.CLASS(PROCEDURE) из модулы если мне не изменяет склероз. Посмотри год создания этого языка))) Кстати import'ы используются и в D. И в Яве... Может у тебя маленький кругозор?
> Сам-то гуру. "Питон один из самых траливали языков, потому что он единственный,
> который ты знаешь". Так?Нет, не так) А это имеет отношение к вопросу? Или для тебя важно?
> Ты конечно знаешь питон очень основательно. А уж тем более ты знаешь
> всё про быдлокодинг. Но больше всего ты знаешь про то, чем
> я занимаюсь, и когда и где я торможу и что я
> знаю и нет :) Ты - это я?Ну, тебе же не мешает ничего делать обо мне выводы, так ведь? И ты сам писал о своём торможении с strtolower, etc. Так что не пытайся соскочить)
> Прежде чем на личности переходить, подумай. Хотя да, тебе наплевать, что о
> тебе думают.не переходил ;)
P.S. извини если обидел :)
> ты что, беседа конечно же ;)заметно :)
> ... тянется from
> .. import ; import; MODULE.CLASS(PROCEDURE) из модулы если мне не изменяет
> склероз. Посмотри год создания этого языка))) Кстати import'ы используются и в
> D. И в Яве... Может у тебя маленький кругозор?Ты не понял. Впрочем, ты и не собирался. См. ниже.
Мне, например, понятно use Module "xxx", "yyy" или даже import java.io.*, а from x import y для меня звучит как "из х импорт у", мягко говоря, коряво, и не совсем лаконично, кстати.
Или, def в качестве определения функции не говорит ни о чём. Что ещё за деф? Почему не "хзу"?
Точно так же except для меня - это "кроме". Причём здесь исключения, непонятно.
А с какого момента используются импорты, я думаю, что ты ошибся. В ассемблере они уже были.>> Сам-то гуру. "Питон один из самых траливали языков, потому что он единственный,
>> который ты знаешь". Так?
> Нет, не так) А это имеет отношение к вопросу? Или для тебя
> важно?Ну для тебя же важно считать, что я быдлокодер, потому что иначе, видимо, твоё самолюбие страдает. А если ты тоже (цитата из тебя же пост 5.87 )
> пишешь сразу на многих языках?))то ты (цитата из тебя же)
> быдлокодер :)?
>> Ты конечно знаешь питон очень основательно. А уж тем более ты знаешь
>> всё про быдлокодинг. Но больше всего ты знаешь про то, чем
>> я занимаюсь, и когда и где я торможу и что я
>> знаю и нет :) Ты - это я?
> Ну, тебе же не мешает ничего делать обо мне выводы, так ведь?Так выводы, не иначе как, ты первый начал делать обо мне. Помнишь свой пост 5.87, или забыл уже? Можешь посмотреть, я его не исправлял :)
> И ты сам писал о своём торможении с strtolower, etc. Так
> что не пытайся соскочить)Глупо, конечно, разговаривать в духе "ты сказал, я сказал", но забавно. :)
Я не писал о торможении. Это ты так решил. И потом, это абстракция, потому что имелось в виду то, что есть англ. фраза, скажем to lower case - "toLowerCase" выглядит ОК, но одним надо изобрести lower, другим strtolower, lcase или ещё что-нибудь - для чего? Чтобы выделиться? Зачем изобретать except ("кроме") - если есть catch? зачем try/raise/except, если уже привычно try/throw/catch? и т.д. Чем слово def нагляднее и насколько удобнее, чем function?
(Это во многом касается и Руби. Очередной велосипед синтаксиса и ключевых слов.)Ещё твоя цитата.
> Во первых, языки надо знать основательно, знать их философию, узкие и сильные места, и > использовать все его возможностиФилософия? Если говорить о философии питона, записанной в википедии, то она вообще не выполняется. Особенно принцип:
"Хотя он поначалу может быть и не очевиден, если вы не голландец."
Такое не менее приятно читать, чем то, за что ты меня ЧСВ обозвал. :)
А можно сказать и проще. Ну не нравится мне вот эта философия, и всё.
Насчёт узких и сильных мест, ясно, что каждый язык должен иметь свои. И например, РНР - быдлоязык - но скажем "домашнюю страницу для мамы" написать больше фактически не на чем.>> Прежде чем на личности переходить, подумай. Хотя да, тебе наплевать, что о
>> тебе думают.
> не переходил ;)Ну да, тот самый пост 5.87, не ты ли обратился ко мне "быдлокодер".
> P.S. извини если обидел :)
Да не обижаюсь. Это ж инет. Здесь принято говорить о других так, как будто знаешь о них всё. Я бы просто предпочёл более конструктивный диалог, хотя есть личности, которых и такой формат устраивает =)
Читать простыни друг друга становится всё тяжелей только мне? xD> Ты не понял. Впрочем, ты и не собирался. См. ниже.
> Мне, например, понятно use Module "xxx", "yyy" или даже import java.io.*, а
> from x import y для меня звучит как "из х импорт
> у". А except для меня - это "кроме". Причём здесь исключения,
> непонятно.Короче, тебе непонятно. Так и условимся.
> Глупо, конечно, разговаривать в духе "ты сказал, я сказал", но забавно. :)
> Я не писал о торможении. Это ты так решил. И потом, это
> так сказать абстракция, потому что имелось в виду то, что есть
> англ. фраза скажем "toLowerCase", но надо изобрести то lower, то strtolower
> или ещё что-нибудь - для чего? Чтобы выделиться? Зачем изобретать except
> ("кроме") - если есть catch? зачем try/raise/except, если уже привычно try/throw/catch?
> и т.д.
> (Это во многом касается и Руби. Очередной велосипед синтаксиса и ключевых слов.)Ага, и если ты не знаешь более ранние языки, из которых пошло IMPORT; FROM IMPORT; то все должны использовать понятные тебе, а не тем кто в общем знаком и с обероном, и с модулой, и с Ди и с Явой.. Короче, это лишь твои детские придирки к синтаксису: "а почему у всех по разному а не везде всё одинаково?"
> Философия? Если говорить о философии питона, записанной в википедии, то она вообще
> не выполняется. Особенно принцип:
> "Хотя он поначалу может быть и не очевиден, если вы не голландец."да, юмор либо дан, либо нет) И дело не в том чтоб ржать с этой фразы, менталитет другой, все такое... Но хоть понять то можно :)
Дальше не комментировал) Ты обиделся что я назвал тебя быдлокодером, хотя всё что ты говоришь подходит под это определение. Ну извини ;)
> Читать простыни друг друга становится всё тяжелей только мне? xDДа, а исправлять собственную писанину плохой стиль - но увы, я опять исправил. :)
> Дальше не комментировал) Ты обиделся что я назвал тебя быдлокодером, хотя всё
> что ты говоришь подходит под это определение. Ну извини ;)Дочитай тот мой пост до конца. :)
И раз уж ты начал флейм, так не обижайся на меня, что тебе неприятно читать свои же простыни :)
> И раз уж ты начал флейм, так не обижайся на меня, что
> тебе неприятно читать свои же простыни :)Аххах) молодец, хорошо провернул))
P.S. объявляю мировую)
>> И раз уж ты начал флейм, так не обижайся на меня, что
>> тебе неприятно читать свои же простыни :)
> Аххах) молодец, хорошо провернул))
> P.S. объявляю мировую)Я за :)
абсолютно бесполезные навязываемые никчемные отступы для обезьян, не получается писать маленькие однострочные функции в одну строку, например как в перле типа такого: sub get_param { shift->param }Хорошие программисты пишут хороший код, плохие - плохой. Слава богу обезьянки пошли осваивать jQuery, javascript, php и python:
http://www.dagolden.com/index.php/1446/is-javascript-the-new.../Советую посмотреть презентацию на досуге, очень поучительна, для всех программистов, не только JS.
> абсолютно бесполезные навязываемые никчемные отступы для обезьян, не получается писать
> маленькие однострочные функции в одну строку, например как в перле типа
> такого: sub get_param { shift->param }
> Хорошие программисты пишут хороший код, плохие - плохой. Слава богу обезьянки пошли
> осваивать jQuery, javascript, php и python:
> http://www.dagolden.com/index.php/1446/is-javascript-the-new.../
> Советую посмотреть презентацию на досуге, очень поучительна, для всех программистов, не
> только JS.Поддерживаю.
Хотя лучше бы обезъяны сидели и ничего не осваивали. Или пускай осваивают питон, но как-нибудь по-тихому в сторонке. :)
Походу уже давно пришло время, когда одним языком программирования не возможно решить все задачи.
А javascript, php - еще довольно молоды, по сравнению с С и С++, более того они изначально были созданы для разработки на коленке маленького и простого.
А на сегодняшний день нет чего то более менее работающего чем JS, чтобы сделать интерактивной обычные странички в браузере.
> Интересно, а что анонимы думают про принудительно-изяшные отступы питона ;)?думают, и уже давно, что мозги программистов просто не способны родить что нибудь осмысленное, после знакомства с последними новинками даже ц частенько начинает казаться более приемлемым.
т.е. что, таки никто до сих пор и не понял что = и immutable переменные следует использовать везде где только возможно, а := оставлен для тех кто не головой работает а руками? надо было наверное сделать еще длиннее, чтоб уж совсем толсто намекало?..
Секретный язык программирования - это типа "неуловимый Джо"?
Насколько я помню, маркетолухи мелкософта начали орать про .NET на каждом углу, когда его и в помине еще не было, чуть ли не за несколько лет до первого выпуска, а здесь все наоборот, секретничают. От кого? Думают, что без рекламы корпорации сами к ним побегут?
Первым к ним прибежит Оракл, потрясая пачкой патентов.
Не оракл лично, а его торговый агент Флориан Мюллер.
Веб паскаль?
Логотипом языка будет чашка с чаем.
>Логотипом языка будет чашка с чаем.Вообще то так и задумано, погугли IcedTea.
К.О.
>призванный заменить JavaНу это мы и из названия языка поняли. Хотя справедливее было назвать ДжаПиДот.
Что делает программист, когда ему нечего делать? - изобретает новый язык программирования! :-)
Угу. Благо островов в Мировом океане хватит на всех :)
Scala с нескучными обоями?
И без всей этой непонятной функциональщины, конечно же.
>Тем не менее, до завершение разработки ещё очень далеко, например, не решены некоторые проблемы с организацией модульной структуры и интеграции с существующими Java-проектами и библиотеками.Если им так нужна интеграция с существующими Java-проектами, зачем они новый язык делали? Кто-нибудь может объяснить анонимусу, зачем они новый язык начали делать?
Потому что оракль
Атата им!
Но все таки это бизнес и ничего личного!
java хороший язык для совего круга, но ему мешает обратная совместимость. отсутствие FirstClassProperty и других фишечек от этого.плюс в самом базовом JDK некоторые методы/функции сделаны не оптимально.
Интеграция же нужна потому как огромное количество кода УЖЕ СУЩЕСТВУЕТ и переписывать на новый язык не будут - не будут пользоваться языком и все.
Значит теперь jar файлы будут пакетиками с чаем, а Enterprise Beans будут Промышленными Листиками? А индийская темя устойчивая :)Лучше б в скалу вкладывались.
оО... теперь цейлонский чай нужно будет скомпилить?
> Лучше б в скалу вкладывались.scala имеет довольно большой функционал. это ЖИРНЫЙ минус для больших команд и больших проектов. язык больших проектов должен быть деревянным как топор.
>должен быть деревянным как топорлол что?
>>должен быть деревянным как топор
> лол что?посмотри на возможности С++ - указатели, работа с памятью, отсутствие проверок выхода за границы массива. и сравни с возможностями Java.
Java умеет МЕНЬШЕ и это меньше более безопасно, а код более простой и деревянный. И на java пишут всякие большие и корпоративные вещи, а на С++ узкоспециализированные и то, где требуется высокая производительность в ущерб стоимости.
Вот не надо путать дизайн языка и количество возможностей.Плюсы не указателями страшны, вообще-то - а, к примеру, чудовищным синтаксисом шаблонов, на которых написать можно лиро работающее, либо читаемое - но никак не вместе, или не особо удачной моделью перегрузки функций, когда ввод нового метода (или функции) во внешней библиотеке может поломать клиентский код - да так, что компилятор не ругнётся, а просто будет вызвана не та функция.
Это проблемы не сложности, а архитектуры - в том же D они решены достаточно удачно.
Вот ручное управление памятью - да, для корпоративщиков не особо приемлемо.
А ограниченность джавы выливается в объём и сложность клиентского кода, что читабельности тоже не особо способствует.
Scala, как язык, умеет еще меньше. Практически все вкусности реализованы в stdlib.И основной плюс scala в том, что можно довольно легко сочинять DSL, без всяких внешних навесов.
Глядя на список фич, я решительно не понимаю зачем нужен этот новый язык когда есть Scala.
Ну видимо Scala они не осилили.
> Глядя на список фич, я решительно не понимаю зачем нужен этот новый
> язык когда есть Scala.Scala имеет множество возможностей по запутыванию кода. Это большой минус для проекта хотя бы в 20-30 разработчиков.
> Классы, методы и атрибуты выглядят одинаково;о_О !!! Это каг?!
abc {
abc {
abc = abc;
}
}Так что ли? Тогда сразу закапывайте, пока оно не проснулось!!
>> Классы, методы и атрибуты выглядят одинаково;
> о_О !!! Это каг?!это наличие FirstClassProperty и FirstClassFunction. в функцию можно передать функцию, без заворачивания в класс как в java. легкий синтаксический сахар.
> это наличие FirstClassProperty и FirstClassFunction. в функцию можно передать функцию,
> без заворачивания в класс как в java. легкий синтаксический сахар.Но это же совсем другие слова, нежели "всё выглядит одинаково"! :)
Хорошо, допустим какую-то функцию я передам и понимаю use case. А какой смысл передавать проперти? Или от проперти будет использован только "геттер"?
>в функцию можно передать функциюХм. Это что, как в лиспе?
(defun foo ()
... )(defun bar (some-function x y)
... )> (bar 'foo x y)
???
Даже языки Vala и D в тысячу раз интереснее чем этот секретный и убогий язык... =(
Вот они старались, делали что-то... но не подумали о том что хочет программист - и выбор будет явно не в пользу Ceylon. Ситуация аналогична языку Go - тоже идиоты проектировали и чхали они на программистов...
> Даже языки Vala и D в тысячу раз интереснее чем этот секретный
> и убогий язык... =(
> Вот они старались, делали что-то... но не подумали о том что хочет
> программист - и выбор будет явно не в пользу Ceylon. Ситуация
> аналогична языку Go - тоже идиоты проектировали и чхали они на
> программистов...Не позорь анонимусов, язык разработали те, кто десяток лет в индустрии огромных проектов (больше чем "новый аудио плеер от пупкина"). Ноги проекта растут от IcedTea, JBoss, и истории платной поддержки от RedHat.
> ... язык разработали те, кто десяток лет в индустрии огромных проектовОткуда такая уверенность.
Впечатление, что язык разработали те, кому начхать на то, кто будет пользоваться языком.
Одно дело - разработать новую систему типизации и синтаксические шорткаты для геттеров, а зачем менять уже привычные элементы синтаксиса, которые ну ни на что позитивно не влияют? Какие-то ключевые слова variable, а что - объявление переменной в локальном блоке по умолчанию константа? Зачем объявлять переменные внутри блока, видимые за его пределами? Это ОО-подход? И т.д.
Это издевательство.
Уж лучше бы жаваскрипт дорабатывали.
> Впечатление, что язык разработали те, кому начхать на то, кто будет пользоваться
> языком.что именно в этом языке тебе не нравится в синтаксисе?
> Одно дело - разработать новую систему типизации и синтаксические шорткаты для геттеров,
> а зачем менять уже привычные элементы синтаксиса, которые ну ни на
> что позитивно не влияют?Привычные - это какие? Зачем изобретать второй Си/С++? Или ориентироваться на его синтаксис? Не способен освоить новый синтаксис - лопату в руки, ты не программист)
>> Впечатление, что язык разработали те, кому начхать на то, кто будет пользоваться
>> языком.
> что именно в этом языке тебе не нравится в синтаксисе?
>> Одно дело - разработать новую систему типизации и синтаксические шорткаты для геттеров,
>> а зачем менять уже привычные элементы синтаксиса, которые ну ни на
>> что позитивно не влияют?
> Привычные - это какие?Ну например (хрен с ним оператором присваивания) инициализация переменной в блоке - зачем там слово variable? неужели каждый раз надо писать этот вариабл? зачем делать переменную, объявляемую в блоке, доступной извне блока? (Впрочем, это не совсем синтаксис...)
> Зачем изобретать второй Си/С++? Или ориентироваться на его
> синтаксис? Не способен освоить новый синтаксис - лопату в руки, ты
> не программист)Сам себе противоречишь. Есть устоявшийся синтаксис С++, так на него и надо ориентироваться. И не надо его изобретать, он уже есть.
А тем более зачем каждый раз осваивать новый синтаксис. Это только источник дополнительных ошибок.
Другой вопрос, если различия обусловлены разными задачами языка (скажем, sh, С и перл), но здесь-то всё одно и то же, даже ЖВМ тот же.
> Ну например (хрен с ним оператором присваивания) инициализация переменной в блоке -
> зачем там слово variable? неужели каждый раз надо писать этот вариабл?похудеешь написав слово variable?
> зачем делать переменную, объявляемую в блоке, доступной извне блока? (Впрочем, это
> не совсем синтаксис...)Для использования вне блока. Не видишь применения?
> Сам себе противоречишь.
Это в каком месте?
> Есть устоявшийся синтаксис С++, так на него и надо
> ориентироваться. И не надо его изобретать, он уже есть.Боже упаси. ) Ужасный синтаксис, тащить такое в новый язык программирования - это хоронить перспективы, инновации, и новые попытки исследования в синтаксисе. Мастодонты С++ вымрут, нафиг на них ориентироваться в долгосрочной перспективе? Сейчас вон, lisp набирает популярность. Покойся с миром С-like syntax :)
> А тем более зачем каждый раз осваивать новый синтаксис. Это только источник
> дополнительных ошибок.Гораздо больший источник ошибок - кривые руки и уверенность что знанием синтаксиса ты знаешь язык. Так и появляются быдлокодеры, которые пишут в стиле С++ например на всех языках.
> Другой вопрос, если различия обусловлены разными задачами языка (скажем, sh, С и
> перл), но здесь-то всё одно и то же, даже ЖВМ тот
> же.Да всё проще, в новых языках стараются вставлять C-like конструкции чтоб не отпугнуть толпу си/си++"ников. Даже Гвидо писал, что ввел в Python самые непротиворечивые конструкции С, чтоб не вызвать неприязнь у Си-программистов. Ну, тогда год другой был. Сейчас это лишь вызывает батхёрт у толпы быдлокодеров осваивающих лишь синтаксис и анонимусов любящих срать на всё подряд.
> похудеешь написав слово variable?Дело не в писании, а в чтении. Код, загроможденный подобным синтаксическим мусором, трудно читать (вздрогнул от отвращения вспомнив паскакаль).
> Дело не в писании, а в чтении. Код, загроможденный подобным синтаксическим мусором,
> трудно читать (вздрогнул от отвращения вспомнив паскакаль).Кстати, паскаль-синтаксис легче читается чем сишный :) И проще, и сразу видно где объявление переменных, а не в цикле, в середине программы, и т.д. Не монструозных конструкций с символами имеющих разное значение в зависимости от контекста, не надо бегать по листингу постоянно... :)
к сожалению функции бывают большие и даже огромные, потому удобнее объявлять переменную там, где она используется. А не ХЗ где, чтобы через Н-цать строк применить.
> к сожалению функции бывают большие и даже огромные, потому удобнее объявлять переменную
> там, где она используется. А не ХЗ где, чтобы через Н-цать
> строк применить.Большие, и даже огромные функции - это недостаток проектирования. Можно сделать вывод что язык потворствует быдлокоду, позволяя объявлять переменные где хочется, раздувая код. А это конечно же минус.
> к сожалению функции бывают большие и даже огромные, потому удобнее объявлять переменную
> там, где она используется. А не ХЗ где, чтобы через Н-цать
> строк применить.Если у вас функция не вмещается в 25 строк исходника целиком (с документацией, пустыми сроками и строками комментариев), убейте тех, кто проектировал функционал :)
25 строк? Вы все еще работаете в текстовом режиме 25х80? Доброе утро, а у нас тут 2011 год уже наступил
Трололо. Четыре строки на javadoc-заголовок, пара-тройка строк на название и перечисление аргументов, половина из оставшихся на фигурные скобочки — и сколько остаётся на осмысленный код? девять строк? это будет очень полезная функция, без сомнения.
>> Дело не в писании, а в чтении. Код, загроможденный подобным синтаксическим мусором,
>> трудно читать (вздрогнул от отвращения вспомнив паскакаль).
> Кстати, паскаль-синтаксис легче читается чем сишный :) И проще, и сразу видно
> где объявление переменных, а не в цикле, в середине программы, и
> т.д. Не монструозных конструкций с символами имеющих разное значение в зависимости
> от контекста, не надо бегать по листингу постоянно... :)Тем не менее, после перехода с паскаля на С совершенно неохота обратно возвращаться.
А конструкции... знаешь ли, это опять зависит от стиля программирования. А не от языка. Будто на паскале нельзя конструкции замутить. :)
> Тем не менее, после перехода с паскаля на С совершенно неохота обратно
> возвращаться.а я наоборот, тащусь от algol-syntax языков) Выравнивание, хороший стиль кодирования и смотришь на код как на сказку)
на всякие
void (* signal(int __sig, void (* __func)(int)))
double (*(*f)(double(*)(double)))(double)
смотрю как на фильм ужасов)> А конструкции... знаешь ли, это опять зависит от стиля программирования. А не
> от языка. Будто на паскале нельзя конструкции замутить. :)Ну, это понятно. Но "стиль программирования" появляется с опытом. И если язык позволяет себе отстрелить себе яйца то это будет кто-то делать. Паскаль сдерживает программиста в рамках, именно поэтому он мне нравится больше :)
>> Тем не менее, после перехода с паскаля на С совершенно неохота обратно
>> возвращаться.
> а я наоборот, тащусь от algol-syntax языков) Выравнивание, хороший стиль кодирования и
> смотришь на код как на сказку)
> на всякие
> void (* signal(int __sig, void (* __func)(int)))
> double (*(*f)(double(*)(double)))(double)
> смотрю как на фильм ужасов)Ну, в D вроде это отчасти решили.
>> А конструкции... знаешь ли, это опять зависит от стиля программирования. А не
>> от языка. Будто на паскале нельзя конструкции замутить. :)
> Ну, это понятно. Но "стиль программирования" появляется с опытом.100%. Поэтому я и говорю, что никакой синтаксис не заставит писать комменты... пока через полгода на собственный код не посмотришь.
> И если язык
> позволяет себе отстрелить себе яйца то это будет кто-то делать. Паскаль
> сдерживает программиста в рамках, именно поэтому он мне нравится больше :)А я люблю ассемблер больше всего. :) особенно RISC.
>> Ну, это понятно. Но "стиль программирования" появляется с опытом.
> 100%. Поэтому я и говорю, что никакой синтаксис не заставит писать комменты...
> пока через полгода на собственный код не посмотришь.Ну, не скажи, определенная культура программирования, свойственная языку все таки, хоть как-то но влияет. Большинство python-программ хорошо оформлены, с документацией.
Еще можешь глянуть краем глаза на Eiffel, вот он, Python прошлого века. Только еще более строгий в отношении оформления программы :)> А я люблю ассемблер больше всего. :) особенно RISC.
http://www.rohitab.com/download/blackbat.pdf
От такого кода испытываю множественный оргазм. )
Практика показывает, что боязнь сишных конструкций исходит от незнания синтаксиса и приоритета операций, и такие аргументы попросту смешат )). Кстати, в прототипе signal () у вас там ошибка
> Практика показывает, что боязнь сишных конструкций исходит от незнания синтаксиса и приоритета
> операций, и такие аргументы попросту смешат )).Ну так улыбайтесь и проходите дальше :) Практика показывает что любые ошибки происходят от незнания. Но есть целесообразность, использовать инструмент или нет. С си нету.
>Кстати, в прототипе signal
> () у вас там ошибкаугумс, забыл... void (*signal (int sig, void (*func)(int)))(int);
>> Ну например (хрен с ним оператором присваивания) инициализация переменной в блоке -
>> зачем там слово variable? неужели каждый раз надо писать этот вариабл?
> похудеешь написав слово variable?И этот кто-то говорит про лаконичность.
>> зачем делать переменную, объявляемую в блоке, доступной извне блока? (Впрочем, это
>> не совсем синтаксис...)
> Для использования вне блока. Не видишь применения?
>> Сам себе противоречишь.
> Это в каком месте?Вот прямо в этом:
> Зачем изобретать второй Си/С++? Или ориентироваться на его синтаксис?Таки изобретать второй (я так понимаю, нечто аналогичное) или таки ориентироваться?
>> Есть устоявшийся синтаксис С++, так на него и надо
>> ориентироваться. И не надо его изобретать, он уже есть.
> Боже упаси. ) Ужасный синтаксис, тащить такое в новый язык программирования -
> это хоронить перспективы, инновации, и новые попытки исследования в синтаксисе. Мастодонты
> С++ вымрут, нафиг на них ориентироваться в долгосрочной перспективе? Сейчас вон,
> lisp набирает популярность. Покойся с миром С-like syntax :)На вкус и цвет. Но тот же любимый тобой питон имеет С-like syntax, при этом ещё и нарушая его понимаемость. Так что питон - первый кандидат на RIP.
>> А тем более зачем каждый раз осваивать новый синтаксис. Это только источник
>> дополнительных ошибок.
> Гораздо больший источник ошибок - кривые руки и уверенность что знанием синтаксиса
> ты знаешь язык. Так и появляются быдлокодеры, которые пишут в стиле
> С++ например на всех языках.То есть, синтаксис знать не надо, что ли? Это как "учить английский по словарю".
>> Другой вопрос, если различия обусловлены разными задачами языка (скажем, sh, С и
>> перл), но здесь-то всё одно и то же, даже ЖВМ тот
>> же.
> Да всё проще, в новых языках стараются вставлять C-like конструкции чтоб не
> отпугнуть толпу си/си++"ников. Даже Гвидо писал, что ввел в Python самые
> непротиворечивые конструкции С, чтоб не вызвать неприязнь у Си-программистов. Ну, тогда
> год другой был. Сейчас это лишь вызывает батхёрт у толпы быдлокодеров
> осваивающих лишь синтаксис и анонимусов любящих срать на всё подряд.А если от быдлокодеров наконец абстрагироваться. Я понимаю, твоё любимое слово. Но. Может быть, наоборот, с-синтаксис используется именно ПОТОМУ, что он лаконичен и понятен НЕ быдлокодерам, а отнюдь не РАДИ быдлокодеров?
Насколько мне известно, обычно человек начинает изучать программирование не с С. Так не странно ли, что именно С-синтаксис популярен, а паскаль-синтаксис благополучно приказал долго жить, хотя он ещё проще и понятнее?
>>> Сам себе противоречишь.
>> Это в каком месте?
> Вот прямо в этом:
>> Зачем изобретать второй Си/С++? Или ориентироваться на его синтаксис?
> Таки изобретать второй (я так понимаю, нечто аналогичное) или таки ориентироваться?ты неправильно понял. Зачем при создании языка создавать еще один си/c++ (по возможностям), или ориентироваться на синтаксис Си создавая язык? На Си можно уже не ориентироваться. Сейчас люди нормально осваивают лисп, хаскели, а быдлокодеров (да-да, моё любимое слово) ищущих одинаковые языки чтоб не слишком трудно было изучать синтаксис - никто не держит)
> На вкус и цвет. Но тот же любимый тобой питон имеет С-like
> syntax, при этом ещё и нарушая его понимаемость. Так что питон
> - первый кандидат на RIP.Ну, как по мне так он больше взял из модулы, ABC и лиспа. Ну, отдельные конструкции Гвидо говорил что взял из Си, я уже писал. Может и рип. Но пока он цветёт и это хорошо :)
>> Гораздо больший источник ошибок - кривые руки и уверенность что знанием синтаксиса
>> ты знаешь язык. Так и появляются быдлокодеры, которые пишут в стиле
>> С++ например на всех языках.
> То есть, синтаксис знать не надо, что ли? Это как "учить английский
> по словарю".Потрясающая дедукция. Перечитай еще раз что я писал, и как это можно было понять как "То есть, синтаксис знать не надо, что ли?"
> А если от быдлокодеров наконец абстрагироваться. Я понимаю, твоё любимое слово. Но.
> Может быть, наоборот, с-синтаксис используется именно ПОТОМУ, что он лаконичен и
> понятен [... поскипано...]по моему, моё утверждение более логично чем твоё о понятности Си ;)
> Насколько мне известно, обычно человек начинает изучать программирование не с С. Так
> не странно ли, что именно С-синтаксис популярен, а паскаль-синтаксис благополучно приказал
> долго жить, хотя он ещё проще и понятнее?Паскаль синтаксис широко используется во многих языках, не беспокойся ;)
>Ситуация аналогична языку Go - тоже идиоты проектировали и чхали они на программистов...толсто)) Go придуман Робертом Гризмером, Робом Пайком и Кеном Томпсоном. Последние люди, да. Идиоты проектировали. Аноним, не позорься)
Валу не знаю, а про Ди согласен - его бы развивать и развивать! (в смысле библиотек) А они вместо этого ЧСВ чешут.
>>Ceylon предназначен для выполнения в стандартной виртуальной машине JVMЯ правильно понял что они вместо того, что бы создать новый аналог джавы в виде виртуальной машины без патентных мин просто напросто выпустят замену джава синтаксису и доделают для этого синтаксиса нужное в напичканной патентными ловушками джавовской виртуальной машине?
>>>Ceylon предназначен для выполнения в стандартной виртуальной машине JVM
> Я правильно понял что они вместо того, что бы создать новый аналог
> джавы в виде виртуальной машины без патентных мин просто напросто выпустят
> замену джава синтаксису и доделают для этого синтаксиса нужное в напичканной
> патентными ловушками джавовской виртуальной машине?Создание аналога во-первых очень дорого. Аналоги смогли осилить только MS с его .Net и IBM+Intel+сообщество в виде Harmony.
Во-вторых любой аналог виртуальной машины попадает под патенты на виртуальные машины. Когда новая VM станет угрожать JVM - Oracle поднимет флаг и поскачет топтать иноверца. Даже RedHat еще не дорос чтобы бодаться с Oracle, а другие компании/сообщества и еще меньше.
Тем не менее, могли бы сделать язык не прибитый к конкретной платформе, пусть даже их реализация и живёт в JVM. Тот же D - хороший пример. Есть LLVM-вариант, есть пара нативных (оригинал и GCC), есть порт на дотнет (правда, его подзабросили вроде).
А как LLVM и другие получит доступ к java-либам и взаимный вызов (из/в) java кода?Если вызова java кода не будет, то это вычеркивает язык из корпоративных. Даже groovy и scala цепляются к java коду.
Мне не понятно с новыми типами данных. Разве набор типов данных не ограничен самой виртуальной машиной? Где-то я читал жалобы разработчика Clojure, что он не может реализовать задуманное потому что его ограничивает виртуальная машина.
> Мне не понятно с новыми типами данных. Разве набор типов данных не
> ограничен самой виртуальной машиной? Где-то я читал жалобы разработчика Clojure, что
> он не может реализовать задуманное потому что его ограничивает виртуальная машина.Набор типов примитивных данных ограничен, а вот объектных - пиши сколько влезет. DTO это по сути и его набор типов данных.
Какие типы, бедняши?
Как был помойный сабтайпинг, так и остался.
Замена java которая работает на JVM. пчелы против меда
> Замена java которая работает на JVM. пчелы против медаSun пропагандировала что JVM не только для java. плюс если этот язык запустится на JVM, то получает доступ к куче кода уже написанного на java.
> Sun пропагандировала что JVM не только для java. плюс если этот язык запустится на JVM, то получает доступ к куче кода уже написанного на java.Не получает.
"Тем не менее, до завершения разработки ещё очень далеко, например, не решены некоторые проблемы с организацией модульной структуры и интеграции с существующими Java-проектами и библиотеками."
Вам русским языком написали - "ЕСЛИ", зачем вы копируете текст новости?
> Замена java которая работает на JVM. пчелы против медаЯ бы сказал тоньше: "Мухи против ....." :)
> язык Ceylon нацелен в первую очередь на создание приложений для бизнесаКак и прочий маркетинговый базворд звучит громко, но ...
Что это вообще означает? Вот xbase языки - да, различные арм-ки да бизнес прикладухи писались на них легко и непринужденно, можно сказать что они были нацелены на создание приложений для бизнеса. А что такого особенного в этом чае? Язык как язык, не хуже и не лучше множества других.
Это не шутка? Отсутствие документов на ГуглДокументах наталкивает на размышления (и отсутствие, и выбранная система хостинга). Ну и над названием тоже долго думали, наверное. Вобщем, ставлю 100 баксов, что это розыгрыш.
Во второй доке в примерах присваивание через кошерное '='. WTF? Кому верить?А так язык приятный. Нету скальной зауми, мощная система типов и достаточно чистый и сладкий синтаксис. Пожалуй, самое оно для очередного кобола.
>Во второй доке в примерах присваивание через кошерное '='. WTF? Кому верить?Читать надо не через строку а полностью.
В одних случаяx используется '=' в других ':='. Домашнее задание : найти слайд, где это поясняется.
> Читать надо не через строку а полностью.Читать надо не второй документ, а еще и первый. Ты так хотел сказать? Но он у меня просто не открывается, поэтому предполагаю, что := служит для достаточно редких операций, а в новости, он подан как единственный способ присваивания.
"=" - это не присваивание, а создание алиаса для константы. На кой ввели два разных знака - неведомо, система типов такие вещи решает отлично
> "=" - это не присваивание, а создание алиаса для константы.это как в паскале
const a=5;
var b: integer;
b:=a;замечу что в описанном примере а будет заменено на 5 еще во время компиляции
>На кой ввели два разных знака - неведомо
согласен
синтаксический сахар не нужен
а принципиальные концепции не уловил )предлагаю в россии делать язык для бизнес приложений, который похож на java и без всяких выкрутасов
У нас уже есть один язык для бизнес приложений, 1С, может не надо еще одного, а?
да и этого желательно не надо :)
> да и этого желательно не надо :):)
> У нас уже есть один язык для бизнес приложений, 1С, может не
> надо еще одного, а?+100 :)
> У нас уже есть один язык для бизнес приложений, 1С, может не
> надо еще одного, а?ХаХа)) Хорошая шутка.)
Неужели они не слышали о Smalltalk!
Это такой сферический идеальный OO язык без библиотек с убогой концепций образов из далеких шестидесятых?Какое отношение он имеет к современной корпоративной разработке?
> Это такой сферический идеальный OO язык без библиотек с убогой концепций образов
> из далеких шестидесятых?что в нём не нравится? список плиз
> Какое отношение он имеет к современной корпоративной разработке?http://www.cincomsmalltalk.com
http://www.squeak.org/Smalltalk/
http://www.gemstone.com/products/smalltalk/
http://www.instantiations.com/
http://smalltalk.gnu.org/
> что в нём не нравится? список плизОн динамически типизированный. По-сути, дальше можно и не продолжать.
Концепция сообщений приводит к излишней неявности. По-сути, не поддерживаемое объектом сообщение может обработать кто-угодно. Так пишут только хипари. Ни о какой серьёзности речи идти не может.
Совместная разработка и контроль версий на smalltalk — миф или реальность? На сколько знаю, удобная сборка образа по сырцам есть только в gst. В остальных это заоблачный одинэсоподобный звиздец.
Отсутствие рынка разработчиков. Ну как-то не сложилось за полвека. Что поделаешь, язык здесь не виноват, всё ZOG напакостил.
Нет библиотек. С ними в smalltalk'е дела еще хуже, чем в лиспе.
Всё выше перечисленное – есть основы ООП ;-) Быдлокодеров в нем мало, не поспорить, тем не менее java – убога хотя бы своим синтаксисом и смесью объектов и primitive types. Смысл по моему мнению в том, что всеми любимый Sun вместо вложения средств в язык, вкладывал их в маркетинг.
> Смысл по моему мнению в том, что всеми любимый Sun вместо вложения средств в язык, вкладывал их в маркетинг.Ты правда считаешь, что вкорячить какую-нибудь лямбду в синтаксис — это дорого?
Sun тратила деньги на развитие *инфраструктуры*, чтобы минимизировать риски использования платформы в энтерпрайзе. Что у неё с успехом и вышло. Консервативность java — самое сильное преимущество, ибо стабильность и надежность.
> ибо глобальность и надежностьfixed.
вы ссылки смотрели?
> Он динамически типизированный. По-сути, дальше можно и не продолжать.strongtalk. google it, sweety.
inb4: да он заброшен, да он недоделан, да он ваще работает через пень-колоду и всё равно никому не нужен, потому что я его не понял!
странная тема.....в каком смысле заменить Java?
в том смысле что нужно сделать такойже громоздкий и неудобный язык с громоздкими конструкциями?
я думаю как раз наоборот исправить эти ее недостатки. Но работать под управлением отлаженной JVM и юзать большое количество библиотек.
Лучше бы Scala доводили до промышленного использования. Удовлетворяет всем выше перечисленным свойствам... и не изобретали велосипед.
Самое смешное, что из отписавшихся здесь, действительно что-то пишут на с++, java, python лишь пару человек. Остальные - просто балаболы.
C# не эффективный, это вранье. си бы встроили и было бы хорошо
Я думал, что-то оригинальное будет, а тут какая-то каша из идей + дебильный оператор присвоения. Пойду и я свелосипедю ещё один язык программирования, назову его Hydralisk. Там будет утиная типизация, обезьянья реализация, AIT (Almost-In-Time), функции произвольного порядка и ещё куча всякой прогрессивной фигни. И няшный оператор присвоения ^^
> Там будет утиная типизация, обезьянья реализация, AIT (Almost-In-Time), функции произвольного порядка и ещё куча всякой прогрессивной фигни.Это типа такого что ли?
enum { value = (! ImplicitlyConvertible<T>::value && (boost::is_convertible<T,bool>::value &&
! boost::is_convertible<T,int>::value &&
! boost::is_convertible<T,void*>::value)) };
Они изобрели очередной лисп с нечитаемым инфиксным синтаксисом и без половины фич?
Очень нужное начинание. С/C++ для написания бизнес приложений не подходят, да и Java давно устарела, она уже далеко не такой высокоуровневый язык, как раньше. Поэтому и появились различные языки, могущие её змаменить на её же платформе.
А чем он будет отличаться от scala вообще?
Голосуем за объединение Ceylon и Kotlin http://youtrack.jetbrains.net/issue/KT-230