LINUX.ORG.RU
ФорумTalks

Языки программирования [Ъ]

 ,


0

2

Продолжение темы.
Ясно, что придется идти на какой-никакой, но компромисс.

На чём удобнее или проще будет писать програмисту, который всегда работал с Си и Лиспом?
C++ и PHP сразу исключаем, ибо непереносимость.

Основные критерии выбора:
1. Удобство программирования на языке в emacs.
2. Похожесть на Си или Лисп.
3. Востребованность языка.

Из всех оставшихся ЯП присматриваюсь к Java и Python, но у них свои недостатки. Может, я какой то ЯП упустил из виду?

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

По поводу Python.
Не так уж и востребован сам по себе. Больше для бекендов веб-разработки и в всяком «девопсе».



Последнее исправление: Nikak (всего исправлений: 1)

и IDE-ориентированность

если ты будешь писать так же мало функциональности/кода, как типичный программист на Си, то никакого IDE не нужно

имхо IDE происходит не из самого языка, а из скорости разработки. Вот от нас на предыдущей работе требовали, чтобы тикет в джире занимал не больше 2 часов работы. То есть в день ты должен запилить минимум 4 новые фичи

если ты нафигачишься метамфетамином и начнешь на той же скорости хреначить на Си, тебе не только IDE понадобится, но и еще много разных дополнительных инструментов (потому что писать будешь неаккуратно, и потом придется за собой подчищать тонны багов и ликов, без автоматизации мало реально)

stevejobs ★★★★☆
()

На чём удобнее или проще будет писать програмисту, который всегда работал с Си и Лиспом?
C++ и PHP сразу исключаем, ибо непереносимость.

На глиняных табличках.

Sociopsih ★☆
()

Что-то я не понял. Какая есть переносимость у Си с Лиспом, которой нет у C++ и PHP, соответственно?

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Программы на C++ работают только на тех платформах, для которых они скомпилированы. И для переноса на другую платформу зачастую нужно не только перекомпилировать, но и еще под особенности GUI адаптировать (если конечно это не фреймворки вроде qt). А программы на Java работают на любом железе, на котором можно установить jdk, соотвественно без перекомпиляции

Nikak
() автор топика
Ответ на: комментарий от Nikak

На планшеты Всё равно нужно переписывать.

Да и не работает Java на iOS в отличие от того же С#

grim ★★☆☆
()

Java или Javascript. Если не нравится писать сложный код - Go.

slaykovsky ★★★
()

2. Похожесть на Си или Лисп.

Одновременно? Ну тогда javascript.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от Nikak

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

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от iZEN

Да любой гуй на жабе убог по дефолту. Один диалог открытия файла чего стоит. Ты лучше приведи пример неубогого гуя на жабе. А то azureus мне до сих пор в кошмарах снится.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от stevejobs

Вот от нас на предыдущей работе требовали, чтобы тикет в джире занимал не больше 2 часов работы. То есть в день ты должен запилить минимум 4 новые фичи

Как фронтэнд-разработчик поступает с перегоревшей лампочкой? Красит в желтый цвет и закрывает баг.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

Azureus на SWT сделан, которая используется системные контролы Gtk2/Gtk3 на *nix, Comctl3d.dll на Windows, Motif на AIX. Дизайн — на совести дизайнеров.

А вот как на Mac OS X выглядят диалоги Java^ https://developer.apple.com/library/content/documentation/Java/Conceptual/Jav...

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Дизайн — на совести дизайнеров.

То есть жабокодеры настолько убоги мозгом, что эгрономику без постороннего человека просчитать не могут?

А вот как на Mac OS X выглядят диалоги Java^

Там написано про интеграцию под конкретную ОС посредством модификации приложения, что противоречит самой идее кросплатформенности жабы. Таким способом можно даже на ассемблере «кроплатформенный» софт писать.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

А то.

Выбирать язык программирования по признаку того, что на нём некоторые создают не всегда красивые интерфейсы, мягко говоря, несерьёзно.

iZEN ★★★★★
()

Go, есть clojure но за востребованность поручиться не могу.

gssomi ★★
()
Последнее исправление: gssomi (всего исправлений: 1)
Ответ на: комментарий от Nikak

А программы на Java работают на любом железе, на котором можно установить jdk, соотвественно без перекомпиляции

Это не так. Если решил портануть приложение с java mobile на андроид, то придётся переписывать весь код.

если конечно это не фреймворки вроде qt

вот это хорошее замечание, потому что переносимее гуя Qt нет ничего. а то вообще-то, тот факт что язык может исполняться на нескольких платформах вообще-то не значит, что и гуй переносим, как у С#, например

фактически, у вас выбор Java(scala) | C++ Qt по этому критерию

next_time ★★★★★
()
Ответ на: комментарий от awesomebuntu

Без разницы, всё равно не знаком с этим.

Hertz ★★★★★
()
Ответ на: комментарий от grim

Меня тоже не пугают. Это не отменяет того факта, что C# дерьмо. И это знают все. Изучать C# это тупо тратить время. Писать на C# это выкидывать свое время в топку.

dmxrand
()
Ответ на: комментарий от dmxrand

Дабавю это к вашему описанию для полноты диагноза ;)

grim ★★☆☆
()
Последнее исправление: grim (всего исправлений: 1)
Ответ на: комментарий от grim

Да мне незачем. Я если вижу дерьмо стараюсь в него не вступать. А С# дерьмо. Это знают все. Даже Microsoft.

dmxrand
()
Ответ на: комментарий от DNA_Seq

Характеристика пишущих на языке является и характеристикой самого языка.

То есть программисты делают язык программирования плохим, я правильно понял твою мысль? А чтобы этого не случалось, надо что?

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

языки сейчас как конструктор какой-нибудь лего.
собрал готовые блоки, обвязал парой if else и уже какая-никакая рабочая программа
ваш КО.

system-root ★★★★★
()

2. Похожесть на Си или Лисп.

Из всех оставшихся ЯП присматриваюсь к Java и Python

При всей моей любви к Python, он ведь не похож ни на то ни на другое совсем. Хотя на вопрос

На чём удобнее или проще будет писать програмисту, который всегда работал с Си и Лиспом?

он вполне отвечает.

Можно ещё посмотреть в сторону новомодного Rust.

Psych218 ★★★★★
()

Из всех оставшихся ЯП присматриваюсь к Java и Python, но у них свои недостатки. Может, я какой то ЯП упустил из виду?

Go упустил. Начинать нужно с прочтения книжки Алан А. Донован, Брайан У. Керниган «Язык программирования Go».

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

iZEN ★★★★★
()
Ответ на: комментарий от i-rinat

запилить новую страничку с крудом и фильтрами, которая каким-нибудь слегка отличающимся от стандартного способом управляет очередным типом объектов (скажем, не просто удаляет пользователей, а еще дергает апи, которые чистят за ним директории)

или взять очередную манипуляцию со счетом клиента в магазине и добавить кнопку, которая его модифицирует исходя из того что стукнуло аналитику в голову час назад (например, добавляет к счету 1% раз в месяц)

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

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

Но такой логики бесконечное количество. Сотни классов, тысячи фич, которые влияют друг на друга уже непойми каким образом, бесконечные портяны исходников. Всё это скомпановано в исторические наслоения разных типов архитектур кода, многократно переписанных и слепленных интерфейсов, обмазано кучей протоколов (из которых асинхронные очереди самый адовый, потому что непонятно что куда ушло, когда и кем будет обработано)

и всё это нужно постоянно рефакторить и пердолить всё новые и новые фичи, которые аналитики рожают со скоростью мысли. Refactor -> Change signature -> add parameter (int value, default 0). «Изменить десять тысяч вызовов метода?»

цифра не просто так, потому что в последнем проекте у нас было 7 с половиной тысяч только прикладных классов - это не считая фреймворков (в Apache Camel, например, тоже около 8 тысяч классов, сколько классов в Spring - боюсь представить) ;)

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

так вот, как бы... сишник с вимом в такой обстановке начинает плавиться

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.