Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перспективный язык "надежного программирования" 
:(
    Опции темы
Sartorius
Дата 20.10.2015, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



Вряд ли количество строк кода может быть решающим критерием для оценки языка. Но если уж сравнивать, то на достаточном объеме данных: http://blog.wolfram.com/2012/11/14/code-le...n-14-languages/
Python действительно выглядит неплохо по этому параметру.

PM MAIL ICQ   Вверх
Sun
Дата 20.10.2015, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 3
Всего: 48



Цитата(Sartorius @  20.10.2015,  15:56 Найти цитируемый пост)
Вряд ли количество строк кода может быть решающим критерием для оценки языка. Но если уж сравнивать, то на достаточном объеме 

Меня обвинили во вранье, что синтаксис Питона
а) Компактный
б) Понятный
Я попытался данным примером доказать свою правоту.

Это сообщение отредактировал(а) Sun - 20.10.2015, 18:58


--------------------
Account removed
PM MAIL   Вверх
kemiisto
Дата 20.10.2015, 19:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Меряться количеством строк в программе, считающей факториал? Вы это серьёзно? Остальное даже комментировать лень. Смысл?


--------------------
PM MAIL WWW GTalk Jabber   Вверх
LSD
Дата 20.10.2015, 19:11 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 9
Всего: 537



Цитата(Sun @  20.10.2015,  16:06 Найти цитируемый пост)
Кстати ты пропустил класс обертку для функции main как и саму функцию.

Передергиваешь. Ты для питона используешь repl а для явы требуешь полноценный класс. Твой код кстати тоже не запустится, просто так.


Цитата(Sun @  20.10.2015,  19:54 Найти цитируемый пост)
Python 2.7.10 (default, Sep 24 2015, 17:50:09) 
[GCC 5.1.1 20150618 (Red Hat 5.1.1-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> factorial = lambda x: ( ( x <= 1 ) and 1 ) or x * factorial( x - 1 )
>>> factorial(5)
120
>>> 

Твоя программа ничего не выводит. То что твоя repl среда пишет результат последнего выражения, не означает что там есть вывод. Плюс на 3-м питоне вообще не заработает так просто (helloworld.py - 100 errors, 34 warnings  smile ).


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Alexeis
Дата 20.10.2015, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(Sartorius @  20.10.2015,  19:56 Найти цитируемый пост)
Вряд ли количество строк кода может быть решающим критерием для оценки языка. 

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


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
kemiisto
Дата 20.10.2015, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Цитата(Sun @  19.10.2015,  21:36 Найти цитируемый пост)
Питон дает компактный и понятный код и обладает широкими возможностями, благодаря чему стал крайне популярен.

Вот то предложение, которое я называю враньём. Я уже писал, что компактный код не всегда понятный. Чаще всего компактность достигается за счёт очень высокоуровневого синтасического сахара в больших количествах, который ещё нужно освоить, чтобы компактный код стал действительно понятным. Sun знаком с Питоновским сахаром, и компактные программы, написанные с его использованием, ему кажется понятным. Но что будет, если ему показать компактный код на другом, незнакомом ему языке, желательно с принципиально отличным синтаксисом, скажем на каком-нибудь LISP'е? Многи ли он там поймёт? Маловероятно, что вообще поймёт хоть что-то.

Вообще, это беда большинства программистов. Узколобость что-ли какая-то, не знаю, как помягче сказать. Тонны синтаксического сахара и прям какое-то сексуальное удовлетворение от возможности в итоге записать никому ненужную функцию факториала в одну вместо десятка строчек! Программирование ради программирования. Проблема в том, что этими играми Вы и вам подобные затянули отрасль в помойную яму. А программируют ведь ещё и нормальные люди, и не ради самого процесса...


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Sun
Дата 20.10.2015, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 3
Всего: 48



Цитата(LSD @  20.10.2015,  16:11 Найти цитируемый пост)
Твоя программа ничего не выводит. То что твоя repl среда пишет результат последнего выражения, не означает что там есть вывод. Плюс на 3-м питоне вообще не заработает так просто (helloworld.py - 100 errors, 34 warnings   ). 

Справедливо, а так?

Код

factorial = lambda x: ( ( x <= 1 ) and 1 ) or x * factorial( x - 1 )
print factorial(5)


Цитата(kemiisto @  20.10.2015,  16:06 Найти цитируемый пост)
Меряться количеством строк в программе, считающей факториал? Вы это серьёзно? Остальное даже комментировать лень. Смысл? 

Смысл в том, что вы мне нахамили, и отказываетесь отвечать за свои слова. За сим, не вижу смысла продолжать с вами дискуссию  smile 

Ваше ЧСВ просто зашкаливает.


--------------------
Account removed
PM MAIL   Вверх
kemiisto
Дата 20.10.2015, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Цитата(Alexeis @  20.10.2015,  18:12 Найти цитируемый пост)
Функция, которая умещается в 1 экран анализируется быстрее чем функция, которая вмещается в 3 экрана.

Верно, но разницы между 2 и 5 строчками при этом нет.

Цитата(Alexeis @  20.10.2015,  18:12 Найти цитируемый пост)
Мое мнение вообще такое, что идеальный язык программирования должен быть декларативным.

В эту игру математики играют уже больше половины века, а инженеры в курсе, что идельным декларативный ЯП никак быть не может, так как он будет слишком далёк от императивной машины. Для каких-то конкретных задач декларативный ЯП может подходить лучше императивного, но ЯП общего назначения должен быть императивным (возможно, с небольшой порцией декларативного высокоуровневог сахарка, если уж где-то кому-то сильно жмёт). Туда, собственно, индустрия и движется: абсолютное большинтсво доминирующих ЯП общего назначения императивны с небольшими включениями декларативных "фич".


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Фантом
Дата 20.10.2015, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Цитата(Sun @  20.10.2015,  19:54 Найти цитируемый пост)

Ваш пример выглядит внушающе  smile К сожалению Фортраном не владею, но похоже весьма мощный язык. 
 Ну вот, только я, можно сказать, разошелся, а Вы сразу сдались. smile  Это же "Религиозные войны", тут надо еще с десяток экранов заполнить примерами...

PM   Вверх
kemiisto
Дата 20.10.2015, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Цитата(Sun @  20.10.2015,  18:20 Найти цитируемый пост)
Смысл в том, что вы мне нахамили, и отказываетесь отвечать за свои слова.

На Фортране уже написали в теже так милые Вашему сердцу 2 строчки. Зачем мне повторяться?

Добавлено через 1 минуту и 48 секунд
И да, Fortran - это как LISP что-ли, только работаешь с массивами, а не списками.

Добавлено через 3 минуты и 35 секунд
И ещё раз повторю: смысла в упражнении с факториалом нет никакого.

Добавлено через 11 минут и 30 секунд
Но, если Вам так упёрлись однострочние факториалы, то, пожалуйста, держите.
Haskell
Код

f n = product[1..n]

F#
Код

let f n = Seq.fold(*)1{1..n}



--------------------
PM MAIL WWW GTalk Jabber   Вверх
Alexeis
Дата 20.10.2015, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(kemiisto @  20.10.2015,  20:26 Найти цитируемый пост)
В эту игру математики играют уже больше половины века, а инженеры в курсе, что идельным декларативный ЯП никак быть не может, так как он будет слишком далёк от императивной машины.

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

Цитата(kemiisto @  20.10.2015,  20:26 Найти цитируемый пост)
Верно, но разницы между 2 и 5 строчками при этом нет.

  Строчки складываются в блоки, блоки в подпрограммы. Я согласен, что пример с факториалом ничуть не показателен. Более показательной была реализация различных паттернов, потому что паттерны, это то с чем программист имеет дело каждый день. Например, далеко не все паттерны выглядят изящно и компактно на С/С++, тогда как языки с синтаксическим сахаром позволяют упростить целый класс или функцию до одной тривиальной конструкции. В результате функция на 3 страницы, уменьшается до 10ти строк.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
LSD
Дата 21.10.2015, 12:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 9
Всего: 537



Цитата(Sun @  20.10.2015,  20:20 Найти цитируемый пост)
а так?

Цитата
Python 3.4.0 (default, Apr 11 2014, 13:05:11)
[GCC 4.8.2] on linux
   
Traceback (most recent call last):
  File "python", line 2
    print factorial(5)
                  ^
SyntaxError: invalid syntax

Мне уже нравится питон smile

Да кстати, даже на Яве которая как кока-кола лайт - без сахара. Можно написать однострочный факториал.
Код

public static LongUnaryOperator factorial = x -> x == 0 ? 1 : x * Main.factorial.applyAsLong(x - 1);



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Nemo2007
Дата 25.10.2015, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 5.7.2007

Репутация: нет
Всего: нет



О-о-о, Ё-ё-ё. Я ж только спросил  smile 
Ну ответы ожидаемы.
1) что понимается под надежностью... Конечно писать хорошо можно и на БЭСИКе, но язык может способствовать написанию читаемых, легче сопровождаемых и соответсвующих спецификациям (ожиданиям) программ или нет. Вот классический БЭЙСИК - считается , что не способствует. smile 
кто хочет поцеплятся к словам, то под надежностью и "правильностью " ЯВУ я понимаю то-же что и авторы http://www.hse.ru/data/2010/03/28/12174103...ing-1-intro.pdf страницы  4-9 (если ничего не видно, откройте в  Адоб Ридере, а не через браузер, к авторам не имею никакого отношения!, просто первое попавшееся, что нашел), кому лень - там ничего особенного - все то, чему учили еще 25 лет назад.
2) Процитирую себя любимого : 
Цитата

язык у которого А=В означает присваивание значения или приравнивание ссылки на объект в зависимоси от того какое значение было присвоено переменной В 200 строк кода тому назад при переходе по 10 "если" - это не очень "надежное программирование". Особенно при сопровождении кода  через пол года или 3 года после завершения разработки такого участка программы.
 Это я как раз про ПИТОН, который, почему то очень любят теперь многие... Я не писал сразу, т.к. не хотел холивара, но все равно не избежать smile. Я сам зацепился за ПИТОН... Ну как-же , 
"Красивое лучше, чем уродливое.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Плоское лучше, чем вложенное.
Разреженное лучше, чем плотное.
Читаемость имеет значение.
Особые случаи не настолько особые, чтобы нарушать правила......"
Так все хорошо начинается. Масса проектов у энтузиастов...
Решил книжки толстые почитать. Поначалу- ничего, вроде читабельность (языка) хорошая, но потом начинается "цирк Пайтона".
По моему,  эти декларации - брехня. Просто реальная брехня, т.к. Лутц (это типа классика?) сам описывает, подобные выше указанной,  "фичи"  языка.  Их там хватает. И это еще люди типа Вирта не высказывались smile. Получается, что язык своей философии не соответсвует, "правилам" не соответсует, а популярность набирает.
3) Отсюда вопрос, который я хотел задать сразу, но не решился, опасаясь, что просто не правильно понимаю текущее положение дел.

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

Я понимаю, почему С. Другого не было.... Написано много кода... и т.д. ОК. 
В жабе попытались чуть подправить, все вроде на "ура" восприняли. 
А дальше приходит Питон, PHP  smile 
Может все эти проблемы программирования надуманы кабинетными учеными? Так ведь и межпланетные станции не туда летали и ракеты взрывались... Это мы еще про самолеты не знаем, потому как такое рассказывать низззя! Слишком большие деньги. (про самолеты - это только голые догадки, но почему должно быть иначе?)
"То самолеты.. А вот в бизнесе обычном, купи-продай, все не так опасно и все нормально работает..."
А сколько будет стоить день простоя крупной банковской системы? Не дороже ли взорвавшейся ракеты?
С точки зрения рядового программиста, я могу понять- написав код,  который хрен кто поймет и сможет сопровождать можно не хило прокачать собственную значимость. Но должны же быть люди, которые бьют линейкой по рукам за такое?
Чего- то я не догоняю.
4) пробежав предыдущие посты хочу спросить "Я чего вдруг так часто как достоинство ЯВУ приводится краткость написания какой либо простой функци? Чего Вы за это цепляетесь?" 
Лаконичность != (читаемость | понятность);
Вроде со скоростью  набора текста у всех программистов терпимо.
Я , например, одним из недостатков С -подобных считаю {}. Дело в том, что эти символы в массе текста сливаются и мало отличаются друг от друга. Да, конечно, стиль и правила программирования... Но если писать кратко в одну строчку? А если так писать нехорошо, то  супер краткость - не фига не достоинство. 
А часто меряются тем,как кратко можно записать ту или иную функцию. Я тоже люблю красиво, но на практике в 60%-80 % случаев после end пишу как коментарий какому if, for, procedure он принадлежит. Нехило позже помогает разобаться во вложенных операторах, но это  совсем не кратко.
Высказался  smile Пойду , почитаю BlackBox, что ли  smile 
PM MAIL   Вверх
Cheloveck
Дата 25.10.2015, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Цитата(Nemo2007 @  25.10.2015,  13:43 Найти цитируемый пост)
В жабе попытались чуть подправить, все вроде на "ура" восприняли. 
А дальше приходит Питон, PHP 

Питон раньше явы появился  smile 

По теме. Как я уже говорил, плохие программы можно писать на любом языке программирования. Кроме того, плохо тоже можно писать на всех языках. Защиты от плохого кода нет негде. 
Вообще, все эти поиски говорят только о неуверенности в себе ТС. Ты можешь прочесть хоть миллион всяких "Идеальных кодов" и "Рефакторингов", это тебе не поможет писать хороший код. Хороший код -- это тот код, который ты пишешь для того, чтобы читать его через два года.
Цитата

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

Martin Golding

Тебе надо просто определиться, зачем, для каких задач, тебе нужен ЯП. После посмотри, на каких языках обыно решают подобные задачи и вперёд. Например, есть задачи, для которых принято (было?) использовать TCL. А после того, как один язык освоишь, другие языки не вызовут вообще никакой сложности. Разве только всякие Erlang`и Haskell`ы, но и они не станут проблемой, если ты поймёшь, зачем тебе они нужны.


--------------------
user posted image
PM Jabber   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1840 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.