LINUX.ORG.RU

ЯП для души

 


7

4

Если нет души, то можно в рабочих целях

  1. Python378 (22%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. C252 (15%)

    *********************************************************************************************************************************************************************************************************************

  3. Другой (в комментариях)220 (13%)

    ******************************************************************************************************************************************************************************************

  4. C++195 (11%)

    *********************************************************************************************************************************************************************

  5. Rust106 (6%)

    *****************************************************************************************

  6. Haskell99 (6%)

    ***********************************************************************************

  7. Go91 (5%)

    *****************************************************************************

  8. Java85 (5%)

    ***********************************************************************

  9. JavaScript52 (3%)

    ********************************************

  10. PHP50 (3%)

    ******************************************

  11. Ruby49 (3%)

    *****************************************

  12. C#48 (3%)

    ****************************************

  13. Delphi47 (3%)

    ***************************************

  14. Swift10 (1%)

    ********

  15. SQL8 (0%)

    ******

  16. Dart8 (0%)

    ******

Всего голосов: 1698

>>> Проголосовать



Проверено: Satori ()

Ответ на: комментарий от Harald

Ну наверное. Я только простейшие запросы писал в прошлой жизни

LINUX-ORG-RU ()
Ответ на: комментарий от Harald

А в этой я хз чё делать. IT мимо наверное. Ну за исключением жалких попыток игрушку сделать.

LINUX-ORG-RU ()

Если совсем для души, то логические вентили в программе Logism. Триггеры по уроню, по фронту, селекторы, дешифраторы, самому составить память, разложить и вывести на 7-сегментный индикатор – меня это завораживает.

Далее идёт VB (net, vba, vbs, OO/LO-basic). Это для дела и мне нравится.

Так же, довольно тепло отношусь к PHP.

rechnick ★★ ()

где ассемблер? где настоящий язык программирования?

bernd ★★★★★ ()

Выведем Другой на первое место опроса!

record ★★★★★ ()

В паскале можно оставаться в понятиях собственной предметной области и заморачиваться архитектурными или иными посторонними проблемами. Это плюс.

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

Питон топ, ожидаемо. Ох если бы не pip, был бы совсем замечательный язык.

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

try/with/raise к твоим услугам

Извращение. Лучше уж старым дедовским флагом выхода. Благо мутабельность никто не запрещал

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

Почему goto народ не любит, а аналогичные конструкции break и return – любит? Ведь по сути все эти конструкции превращают код в лапшу и усложняют чтение.

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

Вместо break надо использовать правильное условие в цикле. Вместо return правильно разбивать на функции. Если возникает break в цикле или return в середине функции, то значит с этим кодом что-то не то и его надо переписать.

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

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

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

Для того чтобы не отвлекаться на обработку ошибку изобрели монаду Either. В более убогих языках есть конечно throw/catch, хотя по своей сути это нелокальное goto. Но throw/catch конечно удобнее лапшеобразной обработки ошибок в go-style.

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

Для этого нужен монадный реврайтер. Впрочем в ризоне есть такой ppx, так что если заморочится, то должно пойти. Жалко только сгенеренный жс будет ой как неоптимальный, так как в отличии от хаскела, который умеет генерить процедурный код из do, он просто реврайтит во вложенные каллбеки аля CPS

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

Either

Тот же самые Result<T,E>, только с сахарком в виде do-нотации. Только вот эти ваши монады непригодны для языков, где control flow не является прямым как рельсы.

quantum-troll ★★★★★ ()
Последнее исправление: quantum-troll (всего исправлений: 1)
Ответ на: комментарий от q0tw4

Из jvm языков норм только котлин, потому что его писали не в подражание другим платформам с другими возможностями, а именно для раскрытия потенциала jvm

Потенциал jvm - что это?
Интересно, какой потенциал JVM был не раскрыт самой Java или Scala или Groovy или AspectJ?

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

Интересно, какой потенциал JVM был не раскрыт самой Java

Java слишком длинная. Котлин показал, что использовать весь функционал jvm меньшим количеством буковок. С другой стороны он имеет приличное множество фич, которые естественным образом реализуются на jvm. Остальные языки мимикрируют под что-то принципиально иное, реализуемое поверх jvm с той или иной степенью успешности (толи тормозят на рефлекшене, толи не всегда компилятся из-за ну там например отсутвия дженериков внутри байткода, толи не совместимы со сторонним джава кодом).

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

В смысле - язык для программирования души?

Для программирования Души есть только один язык - АДА, но его нет в списке.

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

Java слишком длинная.

Это ж только маркетинговый бред для хипстеров.

У java лучше читаемость:
попробуй найти типы возвращаемых значений в kotlin
если у метода 2,3 параметра. Какой умник убрал возвращаемое значение в конец - не известно.
fun youWillHaveToReadTheFullNameToFindReturnType(i: Int): Int {
return i + 1
}
это и многословней чем в java, и читаете хуже, да еще если ты создаешь какой нибудь factory - то тебе и автокомплит не поможет, будешь все Factory из class path перебирать :-)


Вот еще пример на счет использования jvm
в kotlin куда-то спрятали статические члены класса.
Как люди в kotlin объявляют логер - я видел минимум 3 варианта, и все они ужасны как вот этот:
companion object {
val logger = LoggerFactory.getLogger(MyClass::class.java)
}
Как видно из примера этот код и многословней чем java и jvm kotlin использует куда хуже.

Ну а если ты Spring используешь, как тебе нравиться занятие все бины делать open?

На фоне этого мелкие глупости типа of в map вместо : кажутся детскими болезнями.

Итог у котлин будет такой же как у Scala и Cylon. Поиграются и будет болтаться на задворках в языках с user base меньше 1%

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

Мне кажется это судьба и вам двоим пора встретиться =) Ведь до сих пор вас пара :D

LINUX-ORG-RU ()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от Yilativs

Итог у котлин будет такой же как у Scala и Cylon. Поиграются и будет болтаться на задворках

Появился Scala. Юные идиоты стали вопить, что он лучше, чем Java. Появился Kotlin. Юные идиоты вопят, что он лучше, чем Java, и перебегают на него … со Scala.

Появится какой-нибудь Motlin - юные идиоты будут вопить, что он лучше, чем Java, и перебегать на него с Kotlin.

Partisan ★★ ()

а мне ковырять дистрибутив линукса «для души», на ЯП писать не умею :(

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

Какой умник убрал возвращаемое значение в конец - не известно.

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

companion object

Ну где-то у них не срослось с синтаксисом и пришлось отказатся от статиков. И вообще узай депенденси инжекшен вместо глобальных переменных.

Итог у котлин будет такой же как у Scala и Cylon

Из всех jvm языков он первый стал официально поддерживаться в андроиде

q0tw4 ★★★ ()

Сишечка и Хаскелл, конечно. Страдания очищают душу.

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

Сишка прекрасна, даже не знаю что тебя в ней не устраивает. Была бы ужасна, столько бы софта на ней не писали.

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

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

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

Ой, не начинай. В последние лет 30 всерьёз на сишке пишут только никоуровщину и либы, требовательные к производительности.

meliafaro ★★★★ ()
Ответ на: комментарий от Yilativs
companion object { val logger = LoggerFactory.getLogger(MyClass::class.java) }
private static final Logger logger = LoggerFactory.getLogger(MyClass.class); 

Как видно из примера этот код и многословней чем java и jvm kotlin использует куда хуже.

На целых два символа код длиннее? Да, это фатальный недостаток… как же так, наследие процедурных языков заменять вульгарной объектной абстракцией.


Какой умник убрал возвращаемое значение в конец

Ты жабо девелопер? Не верю, декаду назад (язык то древний) в индустрии фапали на UML, а в UML как раз пишут function(): Type :) А теперь по серьезу, в Kotlin может во многих местах выполнять вывод типа, разработчику не обязательно явно прописывать тип если он очевиден из контекста (как в жабе с даймондами <> и var). Например этот код:

fun youWillHaveToReadTheFullNameToFindReturnType(i: Int): Int {
    return i + 1
}

можно записать так:

fun youWillHaveToReadTheFullNameToFindReturnType(i: Int) = i + 1

Постфиксная запись типа позволяет его убирать и добавлять не ломая парсинг, это уже во всех современных языках: swift, rust, scala, typescript, go, etc…


Ну а если ты Spring используешь, как тебе нравиться занятие все бины делать open?

И? open в колтин имеет противополжный смысл final из java, так сделанно в соответствии с заветами из книги «эффектив жаба» Джошуа Блоха: «все что не разрешено - запрещено», в котлин по умолчанию все классы и методы файнал, если хочешь дать возможность наследоваться от класса, то ты должен класс объявить с модификатором open.

Но в реальных проектах так не пишут, используют плагины к gradle/maven которые все классы с аннотациями предпологающими что они будут проксированны делают open.

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

если хочешь дать возможность наследоваться от класса, то ты должен класс объявить с модификатором open.

в языке что-то опасное и запутаное запрещено по дефолту, ограничено или нельзя сделать

Продолжай, мое возбуждение нарастает!

vertexua ★★★☆☆ ()

Для работы C# и SQL, а для души Python.

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

Xfce4, Darktable, Gimp, Blender, Mpv, DeadBeef, Geany, да в общем то много софта.

В последние лет 30 всерьёз на сишке пишут только никоуровщину и либы, требовательные к производительности.

Ну так потому что она хорошо для этого подходит, разве это плохо?

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

Все эти проекты начинались в незапамятные времена.

Ну так потому что она хорошо для этого подходит, разве это плохо?

Неважно подходит, просто ничего сопоставимого по популярности в этой нише ещё нет. Но это дело времени.

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

Все эти проекты начинались в незапамятные времена.

Уже тогда все нынешние языки программирования были. И ничего не мешает перевести проекты на другой язык. А что вообще нового появилось? Ну Tox наверное, и он на С. В новости захожу, и опять проекты на С - http://www.opennet.ru/opennews/art.shtml?num=52123

Неважно подходит, просто ничего сопоставимого по популярности в этой нише ещё нет. Но это дело времени.

Ааа, ну может еще и Линус глупый, раз уж говорит что лучше чем С языка для ядра еще не придумали?

insw ()
Последнее исправление: insw (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)