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

Поиск:

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


Новичок



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

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



Подскажите...
Я, немолодой уже инженер, которому время от времени приходиться писать программы. По работе или под заказ, но не часто. Так что я не программист в том смысле, что не программирую каждый день и не работаю на фирме  создающей программы. 
Пользуюсь Delphi , последний раз использовал Lazarus (очень понравилось как для бесплатного продукта). Знаю более -менее  и использовал всякие Басики и С... 
Ну не люблю я С... smile 

Посоветуйте для изучения в плане саморазвития и повышения конкурентноспособности smile ЯВУ способствующий "правильномому и надежному программированию" и с хорошей читаемостью программ. 

А то с с Паскалем ощущать начинаю себя монстром замшелым. Желательно зрелый язык (зрелый в смысле наличия среды разработки, переносимости по платформам, наличию библиотек и т.д. , но  есть ли такой?), можно новый, но перспективный.
Правильное и надежное прграммирование - в кавычках, т.к. тут могут быть разные вариации, но  в целом, наверное, понято всем, что язык у которого А=В означает присваивание значения или приравнивание ссылки на объект в зависимоси от того какое значение было присвоено переменной В 200 строк кода тому назад при переходе по 10 если - это не очень "надежное программирование". Особенно при сопровождении кода  через пол года или 3 года после завершения разработки такого участка программы.



PM MAIL   Вверх
Cheloveck
Дата 17.10.2015, 21:02 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Писать плохой код можно на любом языке. Так что опеределение "надёжного" программирования я так и не понял.
Язык, обычно, выбирают от задачи, которую пытаются решать. Из наиболее распространённых на сегодня языков общего назначения можно назвать следующие: C++, C#, Java, Python.
Я бы посоветовал Python. У него есть бидндинги к Qt, GTK+ и wxWidgets, при этом он гораздо проще, чем C++. И с кроссплатформенностью у него лучше, чем у некоторых...



--------------------
user posted image
PM Jabber   Вверх
Sun
Дата 18.10.2015, 10:41 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


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

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



После Дельфи вам будет непросто перестроится. Если вы планируете делать время от времени халтурки, которые будут работать на Windows, то вам ближе всего станет C#. Он впитал в себя компонентную модель Delphi а среда разработки будет вам во многом понятна. Также С# позволит сделать быстрый старт, не сильно углубляясь в дебри.

Но если речь идет и кроссплатформенности и конкурентности на рынке, тогда безусловно стоит выбирать Питон. В отличие от Java, он также может дать быстрый старт, при том что на рынке сейчас дефицит Питон программистов и на него существует большой спрос.

Но есть один недостаток - это скриптовый язык, который как многие другие языки стал сейчас модным, за счет использования крупными корпорациями, наподобие Google. Но как и всё модное, он может просто выйти из моды. 

Поэтому, если хотите действительно чего-то основательного, тогда стоит выбирать Java. Она настолько прочно вошла в мир информационных технологий, что на нее уже не влияют модные течения. И что самое прекрасное в Java - это совместимость между версиями. Код который вы писали 10 лет назад можно спокойно запустить даже сегодня, и даже без перекомпиляции. Это уникальный, в своем роде язык. Ни одна другая технология не смогла достичь таких высот.


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


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



ИМХО, ява - язык корпоративных вещей... в обычных программах он крайне редко встречается, по минимуму в сегменте СНГ...или мне не попадается)) а вот в направлении Андроида ... это само оно)

про Win и Delphi , можно еще предложить (по dot Net ) Delphi.Net ... тот же C# , но с синтаксисом от дельфей/паскаля...

а вообще все зависит от задачи.... я видел продукты , которые делают обработку бинарных файлов, и написаны были на PHP ! просто человек , который писал сей продукт больше ничего не знал... написать можно на чем угодно , но сколько сил и времени уйдет ... будет разным на разных языках!


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
LSD
Дата 19.10.2015, 18:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



(учи (лисп (это весело)))


--------------------
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   Вверх
kemiisto
Дата 19.10.2015, 19:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


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



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

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



У Вас больно много союзов "и", там где в реальности бывает только "или".

Вот тут например.
Цитата(Nemo2007 @  17.10.2015,  19:40 Найти цитируемый пост)
Посоветуйте для изучения в плане саморазвития и повышения конкурентноспособности

Языки, способствующие саморазвитию, в большинстве своём неконкурентоспособны. Это факт. Углубляться в пространные размышления о текущем состоянии ИТ не буду, ибо лень. Просто примем этот известный факт за отправную точку. Так что Вы должны для начала выбрать: или Вы саморазвиваетесь на всяких Хаскелах, Смоллтолках, Оберонах и прочих, или зарабатываете на хлеб с маслом на конкурентоспособных Жавах, СиШарпах, ЖаваСкриптах, и иже с ними.

Цитата(Nemo2007 @  17.10.2015,  19:40 Найти цитируемый пост)
Ну не люблю я С...

Ни один инженер это убожество любить не может в принципе. Это нормально, не надо стесняться, здесь все свои. smile

Цитата(Nemo2007 @  17.10.2015,  19:40 Найти цитируемый пост)
Желательно зрелый язык (зрелый в смысле наличия среды разработки, переносимости по платформам, наличию библиотек и т.д., но есть ли такой?), можно новый, но перспективный.

Принимая Ваше определение зрелого языка, такого языка среди способствующих "правильному и надежному программированию" не существует. Тут, в общем и целом, опять же: либо, либо. 

Разве что из зрелых посмотреть уже озвученную Java, ну или Ada, а из новых D что-ли, или Nim какой-нибудь. Но они не очень то перспективные: D за столько лет так и не взлетел, да и в Nim верится с трудом.

Пока писал, пришла мысль то в голову. smile Полезно на "бумаге" то излагать. Есть таки вариант, если мозгами пораскинуть. Go зовётся. Оно, вроде, уже более менее зрелое, и в тоже время не избыточно сложное и вполне предсказуемое. Но я не уверен, что оно более-менее подойдёт под любую задачу. Например, я без понятия, как у них там с GUI.

Добавлено @ 19:34
Цитата(Sun @  18.10.2015,  09:41 Найти цитируемый пост)
Но если речь идет и кроссплатформенности и конкурентности на рынке, тогда безусловно стоит выбирать Питон.

Питон, как и все остальные язычишки с динамической типизацией, БЕЗнадёжен по определению. Во всех смыслах. И по этой причине ТСу не подходит.

Это сообщение отредактировал(а) kemiisto - 19.10.2015, 19:37


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


Account removed
***


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

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



Цитата

Питон, как и все остальные язычишки с динамической типизацией, БЕЗнадёжен по определению. Во всех смыслах. И по этой причине ТСу не подходит.

А мужики то не знают!  smile 

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

А типизация и все прочее - фигня это всё. Надо прагматически подходить. Если спрос есть - значит оно чего-то стоит.


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


Опытный
**


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

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



Цитата(kemiisto @  19.10.2015,  20:30 Найти цитируемый пост)
Ни один инженер это убожество любить не может в принципе. Это нормально, не надо стесняться, здесь все свои.

Да? И давно инженеры не любят Си? Хотя тут наверное стоит определиться в терминах, кто такие инженеры, и чем они занимаются.
Если мы подразумеваем под инженерами людей, которым приходится сталкиваться с системным программированием, то, мягко говоря, они не считают Си убожеством.
Остальная часть, задействованная в прикладных задачах (вывести графичек, что-нибудь посчитать), конечно, может негативно относится к Си, но это также странно, как если бы человек не любил ножи за то, что ими слегка неудобно закручивать саморезы. 
Не, я подозреваю, что такое возможно, и такие люди существуют. Но мне кажется, что это индивиды перечитавшие хабр, которые от слова Haskell так перевозбуждаются, что вся кровь от головы отливает в другие места.
PM MAIL   Вверх
Sartorius
Дата 20.10.2015, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Nemo2007 @  17.10.2015,  21:40 Найти цитируемый пост)
время от времени приходиться писать программы. По работе или под заказ, но не часто. 

Надо определиться с кругом задач сначала. Можно драйвера писать, можно мат/физ проблемы обсчитывать, визуализацией данных заниматься и т.д. И не каждый ЯВУ (или не ВУ smile) под эти задачи подходит. 
PM MAIL ICQ   Вверх
kemiisto
Дата 20.10.2015, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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



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

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



Цитата(Sun @  19.10.2015,  21:36 Найти цитируемый пост)
А мужики то не знают!

Мужики знают, мальчики, увы, нет. smile 

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

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

Цитата(Sun @  19.10.2015,  21:36 Найти цитируемый пост)
А типизация и все прочее - фигня это всё. Надо прагматически подходить. Если спрос есть - значит оно чего-то стоит. 

Плавали, знаем. В согласии с законом Годвина упомянем, что на идеи Гитлер, например, тоже был (да и есть) неплохой спрос, а значит они того стоят. Всё так, всё верно. Здесь и спорить то не о чем.

Добавлено через 5 минут и 29 секунд
Цитата(Guinness @  20.10.2015,  07:38 Найти цитируемый пост)
Если мы подразумеваем под инженерами людей, которым приходится сталкиваться с системным программированием, то, мягко говоря, они не считают Си убожеством.

Это не инженеры. И никому дела нет до того, что Вы там под чем-то подразумеваете.

Цитата(Guinness @  20.10.2015,  07:38 Найти цитируемый пост)
Остальная часть, задействованная в прикладных задачах (вывести графичек, что-нибудь посчитать), конечно, может негативно относится к Си, но это также странно, как если бы человек не любил ножи за то, что ими слегка неудобно закручивать саморезы.

То есть по-вашему, инженеры графички строят? smile Я Вас умоляю, прекратите участие в срачедискуссии пока не поздно. Не позорьтесь. smile 

Цитата(Guinness @  20.10.2015,  07:38 Найти цитируемый пост)
Не, я подозреваю, что такое возможно, и такие люди существуют. Но мне кажется, что это индивиды перечитавшие хабр, которые от слова Haskell так перевозбуждаются, что вся кровь от головы отливает в другие места. 

Вы с кем вообще разговариваете? Сами с собой? Это не ко мне, это к специалистам. smile 


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


Account removed
***


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

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



Цитата(kemiisto @  20.10.2015,  08:24 Найти цитируемый пост)
Мужики знают, мальчики, увы, нет.  

Ну значит в Google работают сплошь  одни мальчики, а все суровые мужики наверно работают исключительно в вашей фирме  smile Если мальчику Россуму Гвидо сейчас 59 лет, то "мужикам", как я понял, должно быть за 100?  smile 

Цитата(kemiisto @  20.10.2015,  08:24 Найти цитируемый пост)
Первое предложение - враньё.

То есть не дает компактный код? Или понятный код не даёт? Можете привести пример вранья? Ну-ка напишите мне этот кусочек кода на каком-то другом языке, более компактно и понятно?

Код

v = [0,1,2,3,4]
r = reduce(lambda x, y: x + y, v)
print(r)



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


Опытный
**


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

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



Цитата(kemiisto @  20.10.2015,  12:24 Найти цитируемый пост)
Это не инженеры.

Ок, в терминах определились. Правда почему это не инженеры не понятно, ну да ладно.
Цитата(kemiisto @  20.10.2015,  12:24 Найти цитируемый пост)
То есть по-вашему, инженеры графички строят?

Я привёл довольно распространённые задачи для инженеров:
1) Вычисление результатов на основе каких-то данных.
2) Вывод этих резултатов в виде удобном для анализа.
Это прикладные задачи, для решение которых использовать Си не требуется. Более того есть куча языков и фреймворков для их удобного и быстрого решения.
Цитата(kemiisto @  20.10.2015,  12:24 Найти цитируемый пост)
Я Вас умоляю, прекратите участие в срачедискуссии пока не поздно. Не позорьтесь.

Да, мне в общем-то всё равно, просто стало интересно, что это за инженеры, которые считают Си убожеством. Из всех моих знакомых инженеров и программистов никто к нему негативно не относится. Могут поливать C++, Java, C#, Python и др, но не Си. Да и в интернете к нему никто плохо не относится, только в качестве троллинга.
PM MAIL   Вверх
LSD
Дата 20.10.2015, 14:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(Sun @  20.10.2015,  14:13 Найти цитируемый пост)
Ну-ка напишите мне этот кусочек кода на каком-то другом языке, более компактно и понятно?

Ничего особенного. Даже на Java можно написать так же. А улучшить что либо в 3-х строчках - нереально, максимум все заинлайнить. Но раз ты настиваешь:
Код

System.out.println(10);

компактнее, яснее, быстрее 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   Вверх
Sun
Дата 20.10.2015, 15:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


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

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



Цитата(LSD @  20.10.2015,  11:24 Найти цитируемый пост)
компактнее, яснее, быстрее   

Ну в таком случае

Код

print 10


 smile 

Кстати ты пропустил класс обертку для функции main как и саму функцию.
Код

public class A {
  public static void main(String[] args) {
    System.out.println(10);
  }
}


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


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


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



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

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



Цитата(Sun @  20.10.2015,  12:13 Найти цитируемый пост)
"мужикам", как я понял, должно быть за 100?

Биологический возраст, очевидно, не играет здесь никакой роли.

Цитата(Sun @  20.10.2015,  12:13 Найти цитируемый пост)
Ну-ка напишите мне этот кусочек кода на каком-то другом языке, более компактно и понятно?

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

Цитата(Guinness @  20.10.2015,  12:20 Найти цитируемый пост)
Да, мне в общем-то всё равно, просто стало интересно, что это за инженеры, которые считают Си убожеством.

Любой инженер по определению должен считать Си убожеством. История создания и основные принципы, заложенные в эту наколенную убогую поделку, которую в приличном обществе и языком то программирования не назовут, противоречат всем известным принципам инженерно-технической деятельности. Ваши какие-то там знакомые "инженеры", либо не инженеры вовсе, а обычные жалкие программистишки, добавляющие в название своей профессии слово "инженер" для весу, либо "непуганные идиоты", которые кроме С ничего не видели. Ну да, если выбирать только из С, то он будет "лучшим". smile 

Цитата(Guinness @  20.10.2015,  12:20 Найти цитируемый пост)
Могут поливать C++, Java, C#, Python и др, но не Си. Да и в интернете к нему никто плохо не относится, только в качестве троллинга.

Это лол, просто. Это что за новый такой критерий качества языка (отсутствие критики в интернете)? smile А ещё и как избирательно мы на эту критику смотрим: все языки "поливают" грязью заслуженно, на а как С "чмырят" - то это, конечно же, всего лишь неуместный троллинг. Как же, как же. smile

Это сообщение отредактировал(а) kemiisto - 20.10.2015, 15:31


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


Account removed
***


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

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



Цитата(kemiisto @  20.10.2015,  12:30 Найти цитируемый пост)
Биологический возраст, очевидно, не играет здесь никакой роли.

То-есть за вашу выдающеюся карьеру, вы достигли гораздо больших высот чем Гвидо Россум? Боже мой! Достойны ли мы тут вообще чатиться рядом с вами?!!

Цитата

Ван Россум родился и вырос в Нидерландах, где он закончил Амстердамский университет по специальности математика и информатика в 1982 году. Затем он работал в различных исследовательских институтах, в том числе Голландском Центре Математики и Информатики (Амстердам), Национальном Институте Стандартов (США) и Corporation for National Research Initiatives (США).

В 2001 году ван Россум получил премию Free Software Award. В 2002 году он получил премию Нидерландской Ассоциации Профессионалов UNIX (NLUUG). В 2006 он был признан Ассоциацией вычислительной техники как Выдающийся Инженер.

В декабре 2005 года ван Россум был принят на работу в Google[4], где он разработал на Python веб-приложение для рецензирования кода (code-review) Mondrian. Также принимал активное участие в разработке компанией Google сервиса хостинга сайтов и web-приложений Google App Engine. 7 декабря 2012 года был последним днём работы в Google[5]. C 1 января 2013 приступил к работе в Dropbox[2].


Цитата(kemiisto @  20.10.2015,  12:30 Найти цитируемый пост)
Во-первых, более компактно не означает более понятно. Ну или, как минимум, не всегда означает.

Ну давайте тогда так - напишем функцию вычисления факториала, свою собственную, средствами одного только языка. Используйте для этого на выбор любой язык, который считаете нужным. И попробуем сравнить - будет ли это понятней и компактней чем на Питон.

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


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


Опытный
**


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

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



Цитата(kemiisto @  20.10.2015,  16:30 Найти цитируемый пост)
Это что за новый такой критерий качества языка (отсутствие критики в интернете)?

Это не было критерием, я просто привёл свои наблюдения.
Цитата(kemiisto @  20.10.2015,  16:30 Найти цитируемый пост)
все языки "поливают" грязью заслуженно

А где я сказал, что заслуженно или не заслуженно? Просто такую реакцию я вижу впервые, вот и удивляюсь.
PM MAIL   Вверх
Sun
Дата 20.10.2015, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


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

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



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

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



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


Эксперт
***


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

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



А чем так плох тот же факториал на С ? smile

Код

int fact(int n) {return n <= 1 ? 1 : n * fact(n - 1); }


Цитата(Sun @  20.10.2015,  18:55 Найти цитируемый пост)
Факториал выбран специально, так как на собеседованиях нередко просят написать именно его.

Кстати какому кандидату Вы отдали бы предпочтение? Который итеративную или рекурсивную реализацию напишет?  smile 
PM MAIL ICQ   Вверх
Sun
Дата 20.10.2015, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


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

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



Цитата(Sartorius @  20.10.2015,  15:04 Найти цитируемый пост)
Кстати какому кандидату Вы отдали бы предпочтение? Который итеративную или рекурсивную реализацию напишет?    

В наше время, если претендент помнит слово факториал - его уже можно брать с руками и ногами  smile 

Лучше с рекурсией, конечно. Для раскрытия темы.


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


Эксперт
***


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

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



Цитата(Sun @  20.10.2015,  19:26 Найти цитируемый пост)
Лучше с рекурсией, конечно. Для раскрытия темы. 

А вот что по этому поводу пишет Макконел 

Цитата

не используйте рекурсию для факториалов и чисел Фибоначчи.
одна из проблем с учебниками по выч. технике в том, что они предлагают глупые примеры рекурсии. типичными примерами рекурсии являются вычисление факториала или последовательности Фибоначчи. рекурсия - мощный инструмент, и очень глупо использовать ее в этих 2х случаях. если бы программист, работающий у мееня, применял рекурсию для вычисления факториала, я бы нанял кого-то другого.....не считая медленного выполнения и непредсказуемого использования памяти, рекурсивный вариант ф-ции трудней для понимания.


Но это все  smile

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


Account removed
***


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

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



Цитата(Sartorius @  20.10.2015,  15:04 Найти цитируемый пост)
А чем так плох тот же факториал на С ? 

Ну хотя бы тем, что для вызова этой функции надо маленький огород нагородить:

Код

#include <stdio.h>
#include <stdlib.h>

int fact(int n) {return n <= 1 ? 1 : n * fact(n - 1); }
int main(int argc, char *argv[])
{
  int f = fact(5);
  printf("result %d", f);
  return 0;
}


тогда как на Питоне полностью рабочая программа будет как:

Код

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



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


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


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

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



Цитата(Sun @  20.10.2015,  14:13 Найти цитируемый пост)
То есть не дает компактный код? Или понятный код не даёт? Можете привести пример вранья? Ну-ка напишите мне этот кусочек кода на каком-то другом языке, более компактно и понятно?
v = [0,1,2,3,4]
r = reduce(lambda x, y: x + y, v)
print®

Вы таки будете много смеяться, но 
Код

write(*,*) sum((/0,1,2,3,4/))

Если что - это Фортран.  smile 
PM   Вверх
Alexeis
Дата 20.10.2015, 18:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Цитата(Sun @  20.10.2015,  19:26 Найти цитируемый пост)
Лучше с рекурсией, конечно. Для раскрытия темы. 

Сисег? 

Вычисление факториала еще до того как будет выполнена 1я строчка кода smile 
Код

#include <iostream>

template<int N>
struct Factorial
{
 enum { value = N * Factorial<N-1>::value };
};

template<>
struct Factorial<1>
{
 enum { value = 1 };
};

int main()
{
 // Example use
 const int fact5 = Factorial<5>::value;
 std::cout << fact5;
 return 0;
}

Но за такой синтаксис поубивал бы )))


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

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

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


Account removed
***


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

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



Цитата(Sartorius @  20.10.2015,  15:33 Найти цитируемый пост)
А вот что по этому поводу пишет Макконел 

Тем не менее, подавляющее большинство интервьюеров хотят увидеть именно рекурсию. Можно сказать требуют этого.

Добавлено через 1 минуту и 44 секунды
Цитата(Фантом @  20.10.2015,  15:36 Найти цитируемый пост)
Если что - это Фортран. 

Ну тут вы вызвали готовую функцию sum. Можно усложнить код внутри безымянной функции.


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


Эксперт
***


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

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



Alexeis, забавный трюк  smile  Но для значений, определяемых во время компиляции, лучше использовать таблицу  smile 
PM MAIL ICQ   Вверх
Фантом
Дата 20.10.2015, 18:43 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Sun @  20.10.2015,  18:55 Найти цитируемый пост)
Ну чтож, пока наш гигант мысли собирается с мыслями, приведу пример функции факториала на Питоне. Факториал выбран специально, так как на собеседованиях нередко просят написать именно его. Меня обвинили во вранье и я вынужден защищаться. Пример не идеален, но он неплохо раскрывает возможности языка:
 Продолжаем ржать. Снова Фортран:
Код

function ifact(n)
 ifact=product((/(i,i=2,n)/))
end

Вызов с выводом, если надо (тоже полная программа):
Код

write(*,*) ifact(10)
end


Добавлено через 2 минуты и 3 секунды
Цитата(Sun @  20.10.2015,  19:37 Найти цитируемый пост)

Ну тут вы вызвали готовую функцию sum.
 Ну я же не упрекаю Вас в том, что Вы воспользовались готовой лямбдой. У каждого языка - свои возможности.  smile 

 
Цитата(Sun @  20.10.2015,  19:37 Найти цитируемый пост)
 Можно усложнить код внутри безымянной функции. 
 Можно, усложните.

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


Account removed
***


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

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



Цитата(Фантом @  20.10.2015,  15:43 Найти цитируемый пост)
Вызов с выводом, если надо (тоже полная программа):

Прекрасно!  smile Итого полный код вашей программы занял 5 строк, моей 2.


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


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


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

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



Цитата(Sun @  20.10.2015,  19:46 Найти цитируемый пост)
Итого полный код вашей программы занял 5 строк, моей 2. 
 Так ведь Ваша программа ничего не выводит (и вообще, может, еще не работает   smile ). А если чуть более серьезно, то аналогичная функциональность обеспечивается двумя строками:
Код

write(*,*) product((/(i,i=2,10)/))
end


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


Account removed
***


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

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



Цитата(Фантом @  20.10.2015,  15:50 Найти цитируемый пост)
Так ведь Ваша программа ничего не выводит (и вообще, может, еще не работает    ). А если чуть более серьезно, то аналогичная функциональность обеспечивается двумя строками:

Цитата

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
>>> 


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


--------------------
Account removed
PM MAIL   Вверх
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.3413 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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