Компания RedHat сделала свой язык программирования под названием Ceylon и к нему компилятор в байт-код, совместимый с виртуальной машиной Java. В RedHat пока не могут ответить уверенно, зачем же им понадобился свой язык, однако красношапковцы уже обещают, что этот язык облегчит программистам создание своих собственных фреймворков и библиотек классов. Как говорится, любая уважающая себя опенсорная компания должна сделать свою операционную систему и свой язык программирования.
Цейлон является объектно-ориентированным языком без специальных типов. В языке будут присутствовать nullable-типы. Классы, методы и атрибуты будут выглядеть одинаково. Явное указание геттеров/сеттеров не будет необходимостью. Вместо классических модификаторов доступа public/protected/private будут использоваться public, protected, private access, visibility.
Как ожидается, язык составит конкуренцию Java и C#.
Официальный сайт языка https://ceylon-lang.org/
Примеры синтаксиса можно посмотреть здесь: https://ceylon-lang.org/documentation/introduction/
Редактировался Дестер (22-11-11 20:19:23)
Неактивен
Пиздец, кому вообще нахуй нужен недоязык, с нестрогим петушением, в похапе даже отладчик приделать проблема ох пипец, который раз убеждаюсь, что ничего проще шарпа и красивее руби нету.
Неактивен
А по мне, так вполне логичный шаг. Каким бы сомнительным и уродским данный язык не оказался, кто-то из опенсорсников его должен был бы сделать. Ибо с одной стороны .NET от MS (которую почему-то не любят), а с другой JAVA от Оракла (которого тоже уже начинают не любить). А своего кросплатформенного ничего нету.
Другое дело в
байт-код, совместимый с виртуальной машиной Java.
Очень напоминает попытку выехать на чужом горбу.
Ну так головой надо думать. По всякой мелочи чо бы не запустить скрипт? Но вот когда полные мудаки всё предлагают скриптами заебенеть, вот тогда полый пиздец начинается. © selenscy
Неактивен
Это всё фигня! Вот где цимус https://okante.narod.ru/D/
"§ 1. Что такое Д
Д (от русс. Душевный) - это Душевный язык программирования. Я начал создавать его, потому как заметил, что программисты на обычных зыках постоянно испытывают стресс и депрессию. А ведь програмирование должно быть не в тягость. Это основная идея языка Д.
§ 2. Зачем Д
Язык Д в корне отличается от всех предыдущих языков программирования. Эти языки отличались друг от друга техническими характеристиками, в то время как в Д основными характеристиками являются характеристики глобально-этические. Именно поэтому он обладает гармонией, следовательно предохраняет жизнь программистов от стрессов и депрессий. Поподробнее об этом читайте в статье Философия Д.
Современный процесс разработки программного обеспечения немыслим для одного человека. Именно проект языка Д открыт для всех. О том как стать разработчиком читайте a статье Приглашаются разработчики."
База сама по себе сплошной скрипт (с) AleksK
При том, что свежие очевидно работают лучше и исправляют некоторые глюки. А в линуксе они (глюки!!!)ещё и становятся нормальными (c) Журнашлюшка
Неактивен
Вот где цимус
Не очень удачный пример, так как там судя повсему душевно больной человек. Если память не изменяет, это предистория или продолжение рус ос Горлова АВ.
https://rus-os.narod.ru/my-rusos.html
https://blogs.mail.ru/list/avgorlov/
гггггггг, йоу, ггггггг © Stewie
Все таки свои луноходы как-то ближе и роднее, чем залетные фраера на паравозах. © pavel2403
Неактивен
нетипизированных
Насколько я понял, Ceylon таки динамически типизируемый. Но всё же это необычный язык:
function sqrt(Float x) { return x**0.5; }
...
interface Producer<in Input, out Value>
given Value(Input input) satisfies Equality { ... }
...
shared interface Equality {
shared formal Boolean equals(Equality that);
shared formal Integer hash;
}
...
String|Nothing name = ...
Думаю, фанатам руби или питона понравится.
Очень напоминает попытку выехать на чужом горбу.
Вероятно, Оракл вскоре выкатит претензии к красной шапке.
Babusha, "в похапе даже отладчик приделать проблема ох пипец" - не буду холиварить, просто скажу, что ты не прав.
Неактивен
Не очень удачный пример, так как там судя повсему душевно больной человек. Если память не изменяет, это предистория или продолжение рус ос Горлова АВ.
УжОС - операционная система жесткого реального времени
Это что стёб такой?
Неактивен
Это что стёб такой?
Ну яж говорю шо немного не того, бывают такие люди, шо уж тут...
гггггггг, йоу, ггггггг © Stewie
Все таки свои луноходы как-то ближе и роднее, чем залетные фраера на паравозах. © pavel2403
Неактивен
??? Python с PyQt и PyGTK, не? Или "своего" == "от Red Hat"?
Ну сравнивать питон и .NET, это как сравнивать по силе и мощности бумажный самолетик и танк, и по большому счету, питон даже не может реализовать совместимость между двумя мажорными версиями, о кроссплатформенности пусть линупсоеды даже не заикаются, те проблемы, которые разработчик испытает при переносе с линупс на винду, могут не пугать только хардкорное линупс-бл**, которое кодит в виме.
Думаю, фанатам руби или питона понравится.
Фанатам руби и питона - скобки (особенно - рубистам), многословность уж точно не понравятся, и зачем, когда есть более-менее полноценный groovy?
не буду холиварить, просто скажу, что ты не прав.
90% динамико-питушков программистов, которые использовали исключительно динамические языки, вообще никогда не пользуются отладчиками , отладка для них - echo("oladka"); echo($odladka_perimennay);. ПОхапешников это несомненно касается.
Неактивен
Вот потому что для подобных языков под любую переменную выделяется максимум памяти
Зависит от реализации интерпретатора. В интерпретаторах, которые я видел, при объявлении переменной устанавливался указатель на void, а затем уже тип этой переменной, действительно, определялся при модификации.
там обьявленная переменная может иметь любой тип( вовсе не имеет его)
Это не верно. В языках с динамической типизацией можно объявлять только переменные тех типов, которые допустимы. Как правило, не имеющие явного типа переменные считаются переменными типа "undefined" (ну, или как-то так). К тому же, в большинстве языков с динамической типизацией неявным приведением переменной к другому типу можно управлять.
Неактивен
И всегда ли интерпритатор корректно отрабатывает операции с приведенными значениями?
Зависит от интерпретатора.
а ты знаешь все правила приведения к типам?
pavel2403, зачем прикручивать к языкам, фишкой которых является неявное приведение везде, где только можно, и динамическая типизация, статическую типизацию? Если нужна статическая типизация, проще воспользоваться другим языком.
Как активный юзатель 1С
Ну, вы сами выбрали свой кактус.
Добавлено спустя 03 мин 21 с:
а то что непроинициализированная переменная всегда хватает тип object
Зависит от языка и от интерпретатора.
Неактивен
Существенным недостатком интерперетируемых языков с нестрогой типизацией
Печально, когда программисты используют языки с нестрогой типизацией для решения задач, под которые эти языки не заточены.
Классы в том же php или JavaScript - это не то же самое, что классы в C++, но это мало кого волнует. Быдлокодят как придётся.
Неактивен
Ты правильно понял, язык с динамической типизацией вобще-то и целом и является языком нетипизированным, потому как там обьявленная переменная может иметь любой тип( вовсе не имеет его) а только преобразуется к необходимому типу при присваивании.
Так почему же он нетипизированный, если он даже строго типизированный, только может динамически менять тип когда и где угодно?
подобные языки всегда будут проигрывать по быстродействию языкам со строгой типизацией, не говоря ппро то, что это часто приводит к утечкам памяти из-за того, что кодер забывает инициализировать обьявленную переменную или в процессе исполнения кода её тип может быть устанолен в неопределенное значение.
Динамические языки, утечка памяти, бла бла, ты вообще о чем? Когда программисты руби, петона, быдло-похаее вообще задумывались об утечках памяти? Это проблемы исключительно интерпретатора, в .NET даже за память не надо беспокоится, а в динамических языках так тем более.
pavel2403, зачем прикручивать к языкам, фишкой которых является неявное приведение везде, где только можно, и динамическая типизация, статическую типизацию? Если нужна статическая типизация, проще воспользоваться другим языком.
В groovy кстати, скрестили человека с обезьяной, можно явно указывать типы.
Существенным недостатком интерперетируемых языков с нестрогой типизацией на мой взгляд является то, что в нем сложно работать с пользовательскими типами, по сути там любой пользовательский тип -это обьект, еще их называют структуры, но это жалкая пародия на структуры(User Defined Type) в языках со строгой типизацией и никаких преимуществ таких структур по сравнению с использованием структур с наборами произвольных простых типов вобще нет.
Более того, при использовании нестрогой типизации, есть ряд проблем и неудобств, к примеру, операция деления строки на число полностью возможна, или "10" == 10 вернет true, так же есть дофига проблем со скоростью выполнения при непрерывном конвертировании типов, давно приводил на версусит специальный быдлокодкод на быдлопохапе, которого в пару раз медленнее чем на руби, только из за того, что все типы там конвертируются беспорядочно, причем, из за нестрогой типизации, в общем, вроде-бы даже нормальный код на похапе превратится в помойку.
Вообще, преимущества динамических языков
1. Чистота кода.
2. Быстрота написания.
3. Динамичность изменения программы во время ее же исполнения (метапрограммирвание, например - eval)
4. Принцип "все есть выражение"
5. Простота всех операций.
Недостатки
1. Проблемы отладки
2. Низкая скорость выполнения (синтаксический анализ, компилирование и бла бла бла приходится совершать каждый раз при запуске)
3. Из за динамического изменения кода на лету, включая типы и все все все, невозможность скомпилировать в один исполняемый файл с машинным кодом, достаточно много компенсируется компиляцией в бай-код для некой виртуальной машины.
4. Высокое потребление памяти из за ее динамического изменения, из за этого очень часто ошибки утечки памяти, но сам программист, который пишет на динамическом языке - не виноват, виноват программист интерпретатора.
И всеровно, будущее за динамическими языками, платформа .NET и Java, их востребованность и удобность - это полностью доказывает, в C# много динамических фишек, которые можно реализовать, исключительно используя дополнительную выполняемую среду (интерпретатор, виртуальная машина и т.д.)
Редактировался Babusha (24-11-11 03:07:17)
Неактивен