Главная страница » Интересное » Мысли об идеальном языке программирования

Чат
Snakely
Ага, щас. awe2
Бухлишко
а ты не спрашивай. ты возвращай butthurt
Snakely
и за что??
Snakely
Кому вернуть?
россо леванто
А уже писали, чтобы снекли бабки вернул?
Apollon13
Snakely, верни бабки сука! butthurt
Бухлишко
Snakely, верни бабки
Snakely
россо леванто
Ветчина
Apollon13
butthurt
Apollon13
Выучишь язык прислуги
Apollon13
Pine from cellars, Pine from cellars, к сербесите обратись вы родственные души
Pine from cellars
ну да, жаль мне анг. не пригождается. Нужно учить итальянский, а больше всего испанский нравится. Когда Toni Ribas начинает говорить я теку прям awe
Свідомий
Pine from cellars
есть подстудия в DogFart(е) GloryHole очень крутые видео у них... Суть какая приходят девушки смотрят в это отверстие, а от туда вылазит BlackCock butthurt они такие ВАУ!
Бухлишко
Mozhno otkryvat' speaking(razgovorniy)-club na SFW troll
Бухлишко
Pine from cellars, SpongeBob SquarePants!
Pine from cellars
Hevding, Who is Glory? troll
Свідомий
Комунист, Link...
Бухлишко
Hevding, Glory of the nation! Death to enemies!
Hevding
Glory for the Emperor!!!
Hevding
Glory to Ukraine! Glory to the heroes!
Свідомий
Цитата: Pine from cellars
22:03:33
100 гр 40-градусного напитка - решают.
Pine from cellars
Бухлишко, да butthurt как говорится не убивать не прибавить
Бухлишко
Pine from cellars, ну хуль ты хочешь, возраст. То к врачу, то в собес, то внука попросить вк настроить. Тебе ж уже не 20, сам понимаешь troll
Комунист
https://youtu.be/d7NwFK8dOnQ?t=97
Комунист
Pine from cellars, https://www.youtube.com/watch?v=DtPBKUtzoy4
Pine from cellars
скоро кончусь... Давление сегодня капец шо в подводной лодке (голова чуть не лопнула)
Комунист
https://www.youtube.com/watch?v=fXUPOhJqNos
bylterer
слюнявчик на параше troll

Только зарегистрированные посетители могут писать в чате.
Опрос

Тебе пирожок

С мясом
С капустой
С яблоками
С картошкой
С творогом
С котятами
Пожрать бы хоть что-то...
 
 
 
Мысли об идеальном языке программирования


В данной статье я хотел бы поделиться своими мыслями об идеальном языке программирования общего назначения. В первую очередь — о языке, который мог бы заменить С++.
Так случилось, что языки программирования — мое хобби и мой основной интерес в сфере IT. Наверное, любой программист иногда мечтает создать свой собственный — идеальный — язык программирования. Для меня это нечто большее чем просто мечта, фактически я уже давно собираю всю информацию по различным языкам и проектирую свой собственный язык.
На разных ресурсах я регулярно высказываюсь по вопросам этой тематики. В этой статье я попытался собрать основные мысли воедино. Мы рассмотрим основные недостатки С++, особенности других языков, которые так или иначе можно сравнивать с С++, и — самое интересное — потребности программистов в языковых фичах, на примере библиотеки Boost.
Данная статья не претендует на какую-то техническую полезность (хотя если она будет кому-то полезна, это замечательно). Это статья-приглашение к обсуждению.

С++ далеко неидеален. Думаю, любой С++ программист согласится со мной:)

Недостатки С++ — это в первую очередь тяжелое наследие Си: ужасная система инклудов и полное отсутствие модульности. Включение заголовочного файла приводит по сути к включению всего содержимого файла в единицу компиляции; поскольку заголовочные файлы включают друг друга, а современные библиотеки могут содержать десятки тысяч заголовочных файлов… разумеется, это не может не сказываться на времени компиляции. Иногда помогают различные решения-хаки типа «precompiled headers» (pch), но, как показывает практика, эти решения тоже далеко не идеальны. Например, Visual C++ не позволяет создавать общие pch для нескольких проектов одного solution (при том, что в precompiled headers как правило включают действительно общие и неизменяемые заголовки — такие как stl, boost и т.п.).
Ну и конечно внутренний перфекционизм, свойственный любому программисту, решительно протестует против такой реализации — по сути костыля, подпорки под неправильную изначально архитектуру.

#define true false
Конечно же «лексический» препроцессор, еще один привет от Си, тяжелое и намертво приросшее наследие unix-way (да, когда-то это действительно была отдельная программа, и да, существуют альтернативные препроцессоры, например m4… но сейчас препроцессор однозначно воспринимается как часть языка). Но совершенно очевидно, что языку нужен некий набор возможностей, решающий задачи препроцессора (а точнее система синтаксических макросов), и это не должна быть нестандартная сторонняя программа, никак не связанная с языком.

И из относительно нового — тьюринг-полнота шаблонов, породившая адские конструкции метапрограммирования на этих самых шаблонах. Изначально предполагалось, разумеется, что шаблонные функции и классы будут использоваться исключительно для написания универсальных алгоритмов и структур данных, не зависящих от типа обрабатываемых/хранимых данных. Прекрасное применение! Но
Отсутствие встроенных синтаксических макросов и вечное чувство голода по фичам заставили программистов создать на шаблонах полноценные метаязыки, с метатипами, метаалгоритмами, с вычислениями, выполняющимися компилятором во время компиляции… Что же в этом плохого? Да ничего, кроме того, что это — по сути своей костыли. Но просто неприятно, когда например ключевые слова (struct) используются совсем не для того, для чего они предназначены. Ну и конечно неадекватные сообщения об ошибках, нередко возникающие из-за случайной опечатки и занимающие десятки (если не сотни) строк на одну ошибку… это поистине ужасно.

Разумеется, в С++ хватает и других недостатков — по мелочам. Так или иначе, многие из них учтены в следующем поколении языков прикладного программирования — Java и C#. Кстати, на мой вкус C# развивается наиболее динамично и органично впитывает в себя фичи из многих других языков; это отличный пример красивого и сбалансированного языка (а значит, и отличный образец, на который можно смотреть при проектировании новых языков). Но ни Java, ни C# все-же не являются языками системного программирования.

Нельзя не отметить и еще одну группу новых (относительно С++) языков, к которым я бы отнес D, Go, Rust, Swift, Nim, и заодно относительно старый Objective C (за его очень интересную особенность — рантайм).

Что же в этих языках интересного?
Начнем с D. Язык разрабатывался как «улучшенный С++», и действительно — многие концепции сделаны более грамотно. Аккуратно реализовано контрактное программирование, есть ФП, есть некая реализация метапрограммирования (но можно сделать лучше!). Язык компилируется в нативный код, а значит, может претендовать на «системность». Но я бы не выделил в D какой-то одной фичи, которая затмевает все. Тем ни менее, складывается впечатление, что язык пошел по пути С++ в части накопления «хаков», это особенно заметно при изучении кода компилятора (чем я периодически занимаюсь).

Go. Среди приятных вещей — структурная типизация интерфейсов. Возможность крайне интересная, сразу хочется воспользоваться…
Еще стоит упомянуть embedding вместо наследования. Когда смотришь на это, думаешь — а ведь это должно быть еще в Си! Настолько это просто в реализации — и, тем ни менее, как элегантно выглядит это решение. Встроенная в язык поддержка многопоточности тоже радует.

Rust. Основная фича — потрясающая система умных указателей и проверок во время компиляции. Да, это стоит брать в идеальный язык… хотя многие жалуются, что система переусложнена. В действительности в ней нет ничего лишнего, хотя я бы не стал отказываться и от классических указателей (в Rust кстати от них не отказываются, они просто завернуты в unsafe). Можно ли такое совместить? Можно. Нет ничего страшного в возможностях, страшно их отсутствие.

И еще я бы хотел упомянуть Objective C. Язык достаточно старый, но людям незнакомым с миром OSX найдут в нем много интересного. Это особая реализация ООП, в частности отправка сообщений вместо прямого вызова методов, система селекторов и метаклассов. Пришедшие в язык из Smalltalk, эти фичи позволяют в компилируемом языке делать многие удивительные вещи, достижимые только в интерпретируемых скриптах — в частности, добавлять методы в классы прямо во время выполнения программы! По-моему, прекрасная возможность.

Следующий интересный вопрос — соотношение фич языка и того, что можно вынести в библиотеки. Так сложилось, что долгое время именно С++ был самым мощным языком программирования универсального назначения (да и сейчас пожалуй остается им, несмотря на все недостатки). Альтернатив не было, но сам по себе С++ долгое время развивался достаточно медленно, а программистам всегда хочется большего! Так или иначе, но стали появляться и развиваться различные библиотеки. Несмотря на то, что стандартная библиотека уже была, многие другие библиотеки и фреймворки часто дублировали ее функциональность своими классами. Яркий пример — строки. Казалось бы, в С++ есть стандартная строка (stdstring), но нет — практически каждая более-менее крупная библиотека имеет свою реализацию строк. CString (MFC/ATL), QString (Qt), TString (VCL), wxString (wxWidgets). Та же участь постигла различные контейнеры (динамические массивы и списки), базовые классы для различных иерархий (object — правда надо признать что в стандартной библиотеке ничего подобного нет). Я уже не говорю про переопоределения простых типов, встречающиеся практически в каждой небольшой программе (даже не библиотеке). Помните всяческие UINT, uint, u32, DWORD, uint32_t… Но наиболее интересным объектом для исследования дизайна языка является пожалуй библиотека Boost (как официальная ее часть, так и библиотеки в статусе Under Constuction, находящиеся в Boost Incubator и прочие неофициальные расширения). К ней мы еще вернемся.

Сейчас же можно сказать, что С++ выглядит так: небольшое языковое ядро, небольшая стандартная библиотека, и множество сторонних библиотек, пересекающихся друг с другом и частично со стандартной библиотекой и захватывающих разные области ответственности — от эмуляции языковых фич до прикладных задач. Многие библиотеки опираются только на ядро. Примерно так:

Мысли об идеальном языке программирования


Маленькое языковое ядро не поддерживает многие языковые фичи и провоцирует программистов писать «эмуляцию языковых возможностей». Поскольку программистов много, то и соответствующих эмуляций много; они как правило несовместимы между собой; громоздки (т.к. построены на нестандартном и/или неочевидном использовании существующих языковых возможностей); трудны в компиляции и отладке, да и вообще в понимании. С другой стороны, маленькое ядро позволяет языку не содержать ничего лишнего и это хорошо (более того, это необходимо для системного программирования). Противоречие? На самом деле разрешимое противоречие. Вот моя схема организации идеального языка:

Мысли об идеальном языке программирования


В центре — базовое языковое ядро. Вокруг него — «language extensions», языковые расширения — некие части языка, которые поддерживаются синтаксически, но которые можно включать и отключать при сборке проекта, а также заменять на свои реализации; дальше — стандартная библиотека, поддерживающая все что относится к программированию общего назначения; и вокруг — прикладные библиотеки, которые не пытаются эмулировать функции ядра, а решают чисто прикладные задачи. Прикладные библиотеки должны реализовывать специфические вещи. Это существенно важно — разница между общим и специфическим. Работа с графикой, с сетью, с железом; специфическая математика, криптография, прикладные библиотеки для каких-то особых областей; работа с разными файловыми форматами, с базами данных, с различными сервисами… все это специфические, прикладные направления, и они безусловно должны реализовывать в виде библиотек. А вот рефлексия или многопоточность, функции высшего порядка или сопрограммы — это фундаментальные с точки зрения языка вещи, и они должны поддерживаться в языке (некоторые — с возможностью замены реализации по умолчанию на что-то другое).

Вернемся к библиотеке Boost. Поговорим о Бусте как о ярчайшем примере того, что языки развиваются гораздо медленнее, чем того хотят программисты. Добрая половина библиотек Буста — это по сути эмуляция языковых фич. Возможно, когда нибудь я напишу отдельные статьи про библиотеки Буста… здесь же — лишь краткий обзор того, что там есть — в причем контексте включения этих фич непосредственно в язык программирования. У Буста есть своя классификация библиотек, с которой я не вполне согласен (хотя и цели классификации у меня другие). Часть библиотек безусловно относится к группе «стандартная библиотека»; часть — вообще прикладные библиотеки; но значительная часть — это именно то, чего не хватает в самом языке, в ядре! Я не буду здесь приводить ни своего деления, ни описания библиотек (это тема отдельной статьи, а то и нескольких). Вместо этого я просто дам список (неполный!) тех библиотек библиотек Буста, которые я бы отнес к языковому ядру:

integer — метаинформация и трейты для целочисленных типовmultiprecision — обертка для библиотек работы с числами произвольной точности GMP, MPIR, MPFRany — универсальный динамический типoptional — опциональный тип, maybe; по идее должен быть встроен в язык и интегрирован с nullablevariant — алгебраический тип данных (sum-type, tagged union)preprocessor — метапрограммирование на сишном препроцессореinentity_type — хелпер для генерации уникальных имен типовassign — мультиоперации, связанные с заполнением контейнеровmpl — контейнеры типов и операции над нимиfusion — контейнеры типов и значений и операции над нимиtuple — кортежиbind — функциональные объекты, создаваемые с помощью частичного применение функцийfunction — функциональные объектыlambda — лямбда-функции; кстати, кое-в чем превосходящие лямбды из c++11;local_function — эмуляция вложенных функцийsignals2 — сигналы и слотыcontext — сохранение и восстановление состояния потока (стека и регистров)coroutine — реализация сопрограммforeach — цикл по коллекциямparameter — эмуляция именованных аргументов фунцийscope_exit — языковая конструкция, в языке D это называется scope(exit), scope(success), scope(failure), в Go — defertype_erasure — альтернативная реализация рантайм полиморфизмаpredef — метаинформация об ОС, компиляторе, платформе...,typeof — эмуляция оператора typeof / decltypeendian — работа с числами с разным порядком байт

Напомню, что это далеко не полный список (и еще я даже не рассматриваю здесь библиотеки расширений Буста, а там тоже немало интересного — например Contract, Hana, Introspection, Mirror, Reflection...). Отмечу, что далеко не все библиотеки следует включать в языковое ядро: в общем случае, достаточно включить в ядро лишь некоторую небольшую (и по сути общую для многих библиотек) часть, и может оказаться, что многие библиотеки из этого списка вообще окажутся не нужны. Также включение в языковое ядро позволит избежать многих ограничений, накладываемых на существующие искусственные реализации различных фич. Такие прекрасные возможности, как алгебраические типы данных, универсальный динамический тип any, опциональные типы, именованные параметры конечно же лучше всего реализовать на уровне языка.

Теперь перейдем к «Language Extensions». Что это такое и зачем я это ввел?
На самом деле такие «расширения» так или иначе существуют и в С++, просто их никто не выделяет в отдельную группу. Пример — система выделения памяти в С++. Интерфейс языкового ядра — это операторы new и delete как таковые; в языковом ядре четко прописан их синтаксис, а в документации — их семантика (выделение и освобождение памяти). При этом язык предоставляет стандартную реализацию, но при желании можно переопределить эти операторы и написать свою систему выделения памяти. Второй пример — идентификация типа во время выполнения, RTTI. Пример демонстирует другой аспект — отключаемость расширений.

Я имею большой опыт работы с микроконтроллерами, там при очень малом объеме бортовой памяти приходилось выделять память только статически — никакой «кучи» не было, и уж тем более не было RTTI.

Разница между Core и Extensions только в том, что элементы core нельзя переопределить; так, условный оператор if однозначен, его логика зашита в ядро и нет никакой возможности заменить его реализацию на что-то другое. Расширения же прописаны в ядре на уровне синтаксиса, так же в языке предоставляется некая реализация по умолчанию, которая устроит 95% программистов; оставшимся 5% предлагается написать свою реализацию, тем ни менее соответствующую языковым интерфейсам, или отключить ее вовсе — для специфических случаев.

Другими такими расширениями могли бы стать
сборка мусора (см. Rust — Gc)управление памятью с помощью подсчета ссылок (см. Rust — Rc, Arc)длинная арифметика (здесь важно то, что арифметика должна быть интегрирована в язык в том числе на уровне литералов; и длинные константы типа 128-битных чисел должны записываться естественным путем — в виде числовых литералов, одинаково для всех реализаций!)многопоточность (оператор go в языке go)рефлексия (да, существует масса способов реализовать ее вручную — но лучше компилятора с этой задачей все равно никто не справится)виртуальность и мультиметодысигналы и слотыдинамика в стиле objcвстроенные скриптыrttiобработка исключений (существуют разные способы ее реализации; а бывают случаи когда она вообще не нужна)floating point (да, на некоторых микроконтроллерах нет FPU и работу с плавающей точкой эмулирует библиотека)
и наверное многое другое, что я не вспомнил сразу…

Под конец хочу остановиться на одном философском принципе, который лежит в основе моего представления об идеальном языке программирования. Обычно в ходе обсуждения на форумах, когда начинаешь говорить что в языке Х нет фичи Y, обязательно найдется кто-нибудь кто скажет: ну как-же, вот если взять фичи A, B и С, и прикрутить к ним костыли D, E и F, то мы получим почти Y. Да, это так. Но мне такой подход не нравится. Можно представить, что таких программистов устроит некоторый сложный путь через лабиринт. Пройти лабиринт можно, но путь кривой и не очевидный. Мне же хочется, чтобы вместо лабиринта была просторная площадь, по которой из любой точки в любую другую можно было бы пройти по прямой. Просто по прямой.

Мысли об идеальном языке программирования
18
 
ХАРЬКОВ
7:10:08 18.05.15
 
ganjabastard
7:31:32 18.05.15
 
OdessaNA
8:59:31 18.05.15
 
ivashka334537
9:30:45 18.05.15
 
anub4iK
10:24:07 18.05.15
 
Псеш
10:31:06 18.05.15
 
Avior
10:43:25 18.05.15
 
semicon
11:00:31 18.05.15
 
Pegasmaster
11:06:01 18.05.15
 
Sunny
11:24:47 18.05.15
123
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Лучшие комментарии
#---
 
goryur
18-05-2015 08:56
12
WOT мешает
#---
 
Avior
18-05-2015 10:43
9
Комунист, хоть бы где-то указал, что статья с geektimes цельнопизжена
А то можно ненароком подумать, что у тебя адекватные мысли появились
#---
 
Грим
18-05-2015 11:50
7
Для Храбра статья как раз, здесь же - имхо, мало кто оценит, специфика сайта другая =)
Ну, а собсно по сабжу - подобные новаторские мысли, подобное желание стать прямоходящим, безкостыльным индивидом - не новость. Собственно, я чертовски удивился, что тут не упоминается Руби. Теми же самыми мыслями руководствовался Юкихиро Мацумото, когда пилил этот замечательный язык ;) В результате получилась достаточно зубастая и гибкая система. Как по мне, если смотреть на "создание идеального языка программирования" с позиции автора - он за пример берет С++, то это вообще занятие неблагодарное. Хотя бы потому, что сейчас IT-технологии неистово шустро развиваются, появляются новые технические решения, концепции. Оперативное внедрение в существующую среду влечет за собой появление костылей и вложенных конструкций =) Как к примеру было с той же жабой, когда объявлено было, что нету мультинаследования. А потом, мультинаследование появилось в виде костылированной имплементации.

Все, я поучаствовал в обсуждении, поумничал, спасибо! =)
#1
 
MYpka2
18-05-2015 06:57
 
7
 
2501
 
Старожилы S.F.W.
-1
 
webwalker
9:43:15 10.11.15
а почем дальше проектирования языка процесс не идет?
__________________________________________

продам спинер
от 36 грн.





Продам ювелирные весы

http://velosvet.in.ua/ - велокомпьютеры и др

#2
 
goryur
18-05-2015 08:56
 
3
 
Старожилы S.F.W.
12
 
Алхимик
9:46:25 18.05.15
 
Casper
11:58:20 18.05.15
 
Artyusha
12:07:57 18.05.15
 
Felix
12:12:22 18.05.15
 
r4zoR
12:59:32 18.05.15
 
Kamfenkel
13:10:27 18.05.15
 
cbi490
13:25:31 18.05.15
 
RinDaime
15:06:17 18.05.15
 
rik_en
15:30:27 18.05.15
 
alf1909985
15:40:04 18.05.15
12
WOT мешает

#3
18-05-2015 09:00
 
1
 
651
 
Старожилы S.F.W.
0
Удачи.
__________________________________________


#4
 
inside
18-05-2015 09:03
 
13
 
1518
 
Старожилы S.F.W.
0
 
rik_en
15:30:39 18.05.15
 
Сашка
13:17:47 19.05.15
Идеальный язык программирования:

A: ADD A,B
DIV C,D
JP NZ A
__________________________________________
http://andrewlazarev.kh.ua/

Видеосъемка Ваших мероприятий и важных жизненных событий.
Фотосъемка и обработка фотографий.
Монтаж Ваших видео и фото: фильм или клип по Вашим материалам.

#5
18-05-2015 09:21
 
94
 
3505
 
Журналюги
3
 
Kamfenkel
13:10:51 18.05.15
 
zayats103
23:14:42 18.05.15
 
jurrio
15:18:08 19.05.15
Читал эту статью на хабре, имхо, идеальный язык программирования - утопия.

#6
 
inside
18-05-2015 09:28
 
13
 
1518
 
Старожилы S.F.W.
2
 
Kamfenkel
13:10:50 18.05.15
 
zver911
11:20:23 19.05.15
не бывает идеальных языков программирования - бывают идеальные программисты. Да и то, хрен где их найдешь
__________________________________________
http://andrewlazarev.kh.ua/

Видеосъемка Ваших мероприятий и важных жизненных событий.
Фотосъемка и обработка фотографий.
Монтаж Ваших видео и фото: фильм или клип по Вашим материалам.

#7
18-05-2015 09:29
 
1
 
1863
 
Старожилы S.F.W.
1
 
Kamfenkel
13:11:06 18.05.15
верхняя фотка-где нога в вьетнамке и без носков,какая то не комунистическая troll
а по теме,чего бы ты не придумал,всё равно будет казатся что это не идеал why ,хотя с другой стороны огромное поле для экспериментов... idea
__________________________________________

#8
 
Dvader
18-05-2015 09:38
 
6
 
1146
 
Старожилы S.F.W.
2
 
Kamfenkel
13:11:18 18.05.15
 
webwalker
13:31:07 18.05.15
Я уже было хотел немножко говнеца на автора вылить но потом дошло что это не его мысли а он статью откуда то взял...
__________________________________________
Имя нам — Легион. Крови нашей — Океан. Мы не боги и не титаны. Мы солдаты. Мы не умираем. Мы отправляемся в ад на перегруппировку

#9
18-05-2015 09:40
 
1240
 
Старожилы S.F.W.
0
 
zver911
11:20:35 19.05.15
 
gowwka_rasta
10:36:56 20.05.15
Идеальный язык программирования - Русский ! cannabis

#10
 
Dvader
18-05-2015 09:42
 
6
 
1146
 
Старожилы S.F.W.
7
 
Арієць
13:23:59 18.05.15
 
MIXer
14:41:41 18.05.15
 
Острый Перец
14:49:02 18.05.15
 
comrade
16:09:00 18.05.15
 
Borat
16:58:28 18.05.15
 
belart
22:37:47 18.05.15
 
Фобыч
22:59:55 20.05.15
maelstorm,
Ты имеешь ввиду 1С ? Для его разработчиков уже давно отдельный котел в Аду зарезервирован...
__________________________________________
Имя нам — Легион. Крови нашей — Океан. Мы не боги и не титаны. Мы солдаты. Мы не умираем. Мы отправляемся в ад на перегруппировку

#11
18-05-2015 10:32
 
138
 
Старожилы S.F.W.
1
 
sergsum
22:07:54 28.05.15
почти ничего не понял, но одобряю)

#12
 
Avior
18-05-2015 10:43
 
170
 
Старожилы S.F.W.
9
 
No_Name
10:57:02 18.05.15
 
Oberst
11:06:18 18.05.15
 
Kamfenkel
13:12:15 18.05.15
 
webwalker
13:30:40 18.05.15
 
texnik
19:11:47 18.05.15
 
green12
21:45:36 18.05.15
 
expitser
23:34:38 18.05.15
 
Darkpups
8:48:48 19.05.15
 
sergsum
12:10:59 22.05.15
Комунист, хоть бы где-то указал, что статья с geektimes цельнопизжена
А то можно ненароком подумать, что у тебя адекватные мысли появились

#13
18-05-2015 11:04
 
2643
 
Старожилы S.F.W.
2
 
Kamfenkel
13:12:22 18.05.15
 
webwalker
13:30:35 18.05.15
 
dima819
14:20:25 18.05.15
 
slo_nik
14:31:10 18.05.15
Цитата: Avior
Комунист, хоть бы где-то указал, что статья с geektimes цельнопизжена
А то можно ненароком подумать, что у тебя адекватные мысли появились



У коммунитстов одни мысли - забрать и поделить.(причём между собой )

#14
 
Oberst
18-05-2015 11:06
 
1
 
3184
 
Старожилы S.F.W.
1
 
MaCphisto
13:21:16 18.05.15
Цитата: Avior
А то можно ненароком подумать, что у тебя адекватные мысли появились

1 за 100, что он сам половину написанного не понимает smoka
__________________________________________
Нас ждёт вкрай весёлая старость, учитывая то, сколько будет старушек с татрами на пояснице.

#15
18-05-2015 11:48
 
4
 
2990
 
Старожилы S.F.W.
4
 
Kamfenkel
13:12:35 18.05.15
 
MaCphisto
13:21:17 18.05.15
 
webwalker
13:30:17 18.05.15
 
MIXer
14:42:02 18.05.15
Цитата: Oberst
1 за 100, что он сам половину написанного не понимает

я думаю он абсолютно нихуя не понимает об чем вобще речь awe2

#16
18-05-2015 11:50
 
119
 
Старожилы S.F.W.
7
 
Dvader
12:58:32 18.05.15
 
Kamfenkel
13:13:56 18.05.15
 
webwalker
13:30:07 18.05.15
 
Avior
13:50:03 18.05.15
 
dima819
14:20:37 18.05.15
 
comrade
16:09:58 18.05.15
 
Псеш
1:42:48 19.05.15
Для Храбра статья как раз, здесь же - имхо, мало кто оценит, специфика сайта другая =)
Ну, а собсно по сабжу - подобные новаторские мысли, подобное желание стать прямоходящим, безкостыльным индивидом - не новость. Собственно, я чертовски удивился, что тут не упоминается Руби. Теми же самыми мыслями руководствовался Юкихиро Мацумото, когда пилил этот замечательный язык ;) В результате получилась достаточно зубастая и гибкая система. Как по мне, если смотреть на "создание идеального языка программирования" с позиции автора - он за пример берет С++, то это вообще занятие неблагодарное. Хотя бы потому, что сейчас IT-технологии неистово шустро развиваются, появляются новые технические решения, концепции. Оперативное внедрение в существующую среду влечет за собой появление костылей и вложенных конструкций =) Как к примеру было с той же жабой, когда объявлено было, что нету мультинаследования. А потом, мультинаследование появилось в виде костылированной имплементации.

Все, я поучаствовал в обсуждении, поумничал, спасибо! =)

#17
18-05-2015 13:28
 
40
 
8242
 
Пиздоболы
5
 
Свідомий
13:32:46 18.05.15
 
comrade
16:10:08 18.05.15
 
Avior
16:56:24 18.05.15
 
jurrio
15:18:53 19.05.15
 
Aleksandr_
22:10:50 21.05.15
Цитата: Комунист
В данной статье я хотел бы...

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

#18
18-05-2015 17:18
 
939
 
Старожилы S.F.W.
0
Грим,Для Храбра да
а вот для Измемна нет bellow
__________________________________________
"Keep your ears open and your mouth SHUT!"

#19
18-05-2015 21:48
 
104
 
Старожилы S.F.W.
2
 
belart
22:38:29 18.05.15
 
piropatron
21:05:59 20.05.15
Работаю быдлокодером но нифига не понял. Язык это инструмент. Что круче молоток или отвертка?

#20
 
daiver
18-05-2015 22:38
 
5
 
2610
 
Старожилы S.F.W.
0
Цитата: Грим
Как по мне, если смотреть на "создание идеального языка программирования" с позиции автора - он за пример берет С++, то это вообще занятие неблагодарное.

Так речь же о производительности, этих сахарно-скриптовых языков уже овер 9000, но если хочешь производительности, надо юзать плюсы.

#21
 
Finch
19-05-2015 00:18
 
494
 
Старожилы S.F.W.
0
 
jurrio
15:19:10 19.05.15
 
Aleksandr_
22:11:24 21.05.15
HTML идеальный язык программирования

#22
 
savilen
19-05-2015 00:42
 
2
 
638
 
Старожилы S.F.W.
1
 
sergsum
14:35:49 26.05.15
по моему идеальный язык программирования это тот, которым говорит Рен-ТВ

#23
19-05-2015 02:45
 
14223
 
Старожилы S.F.W.
0
"идеального" ничего не бывает, мил-человек...

#24
 
Jeday
20-05-2015 00:25
 
141
 
Читатели
0
ООП наше все)

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
наверх