Программирование

Ответить в тред Ответить в тред
Каким должен быть современный язык программирования? Аноним 19/04/20 Вск 10:36:16 16616021
coding.png 353Кб, 770x270
770x270
Опишите минимальные требования к современному языку для системного программирования. Интересуют как технические, так и нетехнические требования.
IDE? Куча готовых библиотек? Совместимость между версиями?
Из нетехнических, например, должна ли за ЯП стоять богатая корпорация (и насколько богатая)? Что ещё?
19/04/20 Вск 12:44:09 16617462
>>1661602 (OP)
Такие ебанутые вопросы может рожать только тот кто не программировал.
Аноним 19/04/20 Вск 13:08:54 16617593
>>1661746
Сразу видно, что ты никогда не задумывалась о создании языка программирования.
19/04/20 Вск 13:38:40 16617844
>>1661759
Я же долбаеб создавать что-то не имею потребности
Если бы у тебя была потребность, то ты бы знал что нужно, а так ты просто еблан которому нечем заняться

Пиздуй в /b вниманиеблдствовать
Аноним 19/04/20 Вск 13:46:58 16617965
>>1661602 (OP)
> системного
C всех устраивает, придумывать для него хипстерский синтаксис только из-за того, что ему 50 лет, глупо.
Аноним 19/04/20 Вск 13:53:58 16618046
>>1661784
>Я же долбаеб

Достаточно...
Аноним 19/04/20 Вск 13:54:07 16618057
>>1661796
С был бы лучше если он бы был похож на котлин

Вот сам оцени:
fun sum(a: Int, b: Int): Int {
return a + b
}
Аноним 19/04/20 Вск 13:55:12 16618078
>>1661796
>C всех устраивает

Отучаемся говорить за всех.
Аноним 19/04/20 Вск 14:09:32 16618199
>>1661805
синтаксис V ослепляет глаза своей красотой

fn add( x int, y int) int {
return x+y
}
Аноним 19/04/20 Вск 14:12:21 166182410
>>1661819
>fix

fn sum(x int, y int) int {
return x+y
}
Аноним 19/04/20 Вск 14:20:15 166183011
Аноним 19/04/20 Вск 14:46:05 166187512
>>1661819
Зачем писать "return"? Современный язык должен обходиться без этого.
Аноним 19/04/20 Вск 15:12:15 166190813
Аноним 19/04/20 Вск 15:19:26 166191114
>>1661602 (OP)
>Каким должен быть современный язык программирования?
Менеджер пакетов как у питона или лучше, стандартная библиотека с поддержкой сети, gui, асинхронности, широкий стандартный функционал для работы с текстом, возможность выполнения каких-то легко интегрируемых скриптов на уровне lua или лучше (если это компилируемый язык).
Возможность динамической типизации для кода, где эффективность не так важна и нужна выразительность кода; возможность статической типизации для чего-то ресурсоёмкого.

Джава и питон довольно близки к.

С++ очень не хватает менеджера пакетов и какой-то нормальной стандартизированной системы сборки. Возможно нужно больше синтаксического сахара - позаимствовать из того же питона операторы по типу with, срезы, сделать всякие операции преобразования в текст (питоновский __str__) стандартными операциями подлежащими перегрузке, добавить генераторы.
Это всё и сейчас можно сделать по сути, но синтаксис будет угрёбищный как у шаблонов, всякие многострочные template<typename T, std::enable_if_t<std::is_same<typename std::remove_reference<T>::type, int>::value, int> = 0> - вот это пиздец просто (это вроде бы проверка на тип шаблона, чтобы он компилировался только с интом или ссылкой на него - но вообще чёрт его знает что это), который отбивает желание этим пользоваться.

>>1661875
Как тогда понять где происходит return, а где нет?
Вот у тебя есть функция mul(a, b) - она записывает два числа в лог и перемножает их. Если в твоей функции fn используется mul - как программа поймёт хотел ли ты просто записать два числа в лог или помимо этого ещё и вернуть их как результат функции?
Аноним 19/04/20 Вск 15:40:50 166192015
>>1661911
>как
a = mul // хотел
mul // не хотел
Аноним 19/04/20 Вск 15:44:38 166192516
image.jpg 15Кб, 480x360
480x360
>>1661911
>Как тогда понять где происходит return, а где нет?
Растовское неставленье точкизапятой выглядит достаточно элегантно
Аноним 19/04/20 Вск 16:02:44 166194517
Аноним 19/04/20 Вск 16:09:46 166195918
>>1661911
>С++ очень не хватает менеджера пакетов

vcpkg и conan почему-то не взлетели.
Аноним 19/04/20 Вск 16:22:37 166197319
>>1661959
Зато взлетел ебучий язык программирования cmake.
Аноним 19/04/20 Вск 16:35:52 166200820
>>1661973
>cmake
Какой язык, такая и система сборки
Аноним 19/04/20 Вск 17:09:33 166206521
Пока язык V много обещает на будущее. Например перевод any_lang > V > any_lang, приложение для андроид, всякие плющки с синтаксисом и т.д.
Буду ждать 1.0v
Аноним 19/04/20 Вск 17:19:48 166210022
>>1662065
Ну в одном он уже обосрался - в названии. Получается такая же ебала, как с go, когда надо что-то искать и писать go lang, golang, go.
Аноним 19/04/20 Вск 17:31:52 166211523
>>1662008
Проблема в сраном сообществе линукса, нет ничего более тормозящего развитие и порождающего уродства чем эта оргия говна.
Аноним 19/04/20 Вск 17:35:49 166211924
Аноним 19/04/20 Вск 17:36:09 166212025
Аноним 19/04/20 Вск 17:37:56 166212426
>>1662119

Главное оправдание сделать хуево. А то что блядь если это сделано не пиздец хуево, человек который может мог бы сделать лучше возьмется за что то другое, никто не думает.

Это просто уебанская философия.
Аноним 19/04/20 Вск 17:42:10 166213127
>>1662124
Ни одного аргумента за хуевость cmake так и не прозвучало
Пукофилософ хуев
Аноним 19/04/20 Вск 17:42:21 166213228
Аноним 19/04/20 Вск 17:59:33 166215629
>>1662132
У борщехлёбов всё охуенно, пока не спотыкаешься о
Couldn't match expected type `Int' with actual type `Float'

Дженерики
Аноним 19/04/20 Вск 18:27:39 166217430
>>1661973
Всё же он лучше всего остального. Я загружаю проект с cmake - и он запускается сразу или в течении нескольких минут почти без исключений. А когда я открываю проект с чем угодно ещё - он может часами жаловаться на глупые ни о чём ни говорящие ошибки которые не понятно как фиксить и что ему из зависимостей и в каком месте нужно поставить.
Но про язык программирования это да.
Аноним 20/04/20 Пнд 00:40:03 166246831
>>1661925
Выглядит отвратительно! Что дальше, значащие пустые строки и пробелы в конце строки?
Аноним 20/04/20 Пнд 00:50:01 166247232
>>1662468
А дальше питон. Раз в JS, Go, Rust и Kotlin решили прибить гвоздями форматирование, следующим шагом будет авторасстановка фигурных скобочек. А затем и неканоничные идентификаторы перестанут приниматься.
Аноним 20/04/20 Пнд 05:40:07 166256033
Аноним 20/04/20 Пнд 12:42:45 166273634
>>1662065
В переводе лучше всего преуспели такие языки как nim и haxe.
Аноним 20/04/20 Пнд 14:48:40 166288835
>>1662156
Будто что-то плохое, зато мозг включишь и не будешь бездумно складывать разные типы.
Аноним 20/04/20 Пнд 14:50:04 166289236
>>1662472
>неканоничные идентификаторы
Это типа slave и master и все, что содержит слово white?
Аноним 21/04/20 Втр 19:39:22 166389637
Аноним 22/04/20 Срд 03:41:36 166420638
>>1662892
Ещё про race не забудь! Race condition -- табу
Аноним 23/04/20 Чтв 09:21:01 166517239
Аноним 23/04/20 Чтв 17:00:54 166561340
>>1665172
> null не нужен
Подменивать понятия не нужно. null нужен, но с nullable-типами.
Аноним 23/04/20 Чтв 17:50:44 166567341
>>1665613
Это тот костыль из котлина который?

Вообще тогда как-то так
good tier: union types
normal tier: maybe monad
low tier: nullable
dolboebooshka tier: null
Аноним 23/04/20 Чтв 18:04:18 166568542
>>1665673
> union types
Как эта небезопасная хрень поможет, если нужно хранить не значения разных типов, а либо одно, либо ничего?

> maybe monad
В жабе есть ебучий Optional, тот же Maybe.

> nullable
У него своих проблем хватает, говорят.

> null
Гроб гроб кладбище NPE
Аноним 23/04/20 Чтв 18:34:59 166570943
>>1665685
>Как эта небезопасная хрень поможет, если нужно хранить не значения разных типов, а либо одно, либо ничего?

Ну разумеется что кроме них должны быть ещё обычные sum-types и intersection types.
А nullable это просто частный случай union types.
Аноним 24/04/20 Птн 14:21:11 166638644
В современном языке не должно быть макросов. Нужда в макросах говорит о невыразительности языка, и макросы уродуют синтаксис.
Аноним 24/04/20 Птн 14:57:03 166640745
>>1661602 (OP)
Не надо делать язык, если не можешь вдогонку выпустить добротную экосистему.

Достаточно посмотреть на vlang.

Проблема не в языках, а в том, что вы тупые мартыханы ни во что, кроме копипасты не можете.
Аноним 24/04/20 Птн 15:29:55 166644646
>>1666407
что не так с влангом?
Аноним 26/04/20 Вск 07:21:23 166780847
>>1666407
>добротную экосистему

Что значит "добротную"? Какие обязательные требования должны быть соблюдены, чтобы её можно было так называть?
Аноним 27/04/20 Пнд 17:33:39 166930548
>>1667808
ДОБРОТНЫЙ, -ая, -ое; -тен, -тна, -тно. Сделанный хорошо, прочно, из очень хорошего материала; отличающийся высоким качеством, большой прочностью. Добротный драп. Добротная кожа. На подкладку [для шинели] выбрали коленкору, но такого добротного и плотного, который, по словам Петровича, был еще лучше шелку. Гоголь, Шинель. Полушубок на нем добротный, из мягких романовских овчин, хорошие сапоги. Овечкин, Без роду, без племени. Дома были добротные, сбитые из бревен, крытые железом и черепицей. Э. Грин, В стране Ивана.

Аноним 27/04/20 Пнд 17:53:08 166932649
>>1669305
Что значит "сделанная хорошо" и "отличающаяся высоким качеством" экосистема языка? Какие обязательные требования должны быть соблюдены, чтобы её можно было так называть?
Аноним 27/04/20 Пнд 17:54:46 166932950
>>1661602 (OP)
"Думаю, давно пора извлечь уроки из истории. Ни один здравомыслящий человек не потащит в проект новый язык, пока вы хотя бы не покажете ему нормальные инструменты разработки, не расскажете парочку саксесс сторис и не покажете десяток программистов на этом языке, живущих поблизости. Программисты же, пожалуй, кроме самых молодых, никогда не станут тратить свое время и здоровье на изучение очередного самого правильного языка, пока вы не покажете им нормальные инструменты разработки (не поделки типа Racer), пару десятков тысяч готовых библиотек (не «experimental», «unstable» и так далее), не расскажете парочку саксесс сторис и не покажите десяток открытых вакансий в их городе. Проблема курицы и яйца. Очень редко эту проблему удается успешно решить (условно тут можно привести в пример Go и Scala), в основном благодаря вложению времени и денег со стороны некоторой крупной компании (Google, Typesafe), по каким-то своим соображениям заинтересованных в популяризации языка."
https://eax.me/cpp-will-never-die/
Аноним 30/04/20 Чтв 11:50:16 167222751
Аноним 30/04/20 Чтв 13:42:29 167231152
>>1672227
> постфиксные операции «++» и «--», которые для большинства — загадочны
Дальше не читал.
Аноним 30/04/20 Чтв 13:53:00 167232453
ifelse.png 23Кб, 583x559
583x559
>>1672311
А зря, там он ссылается на статьи и топит за них, судя по всему он же и автор, где вместо "непонятных" ifelse/elif, то есть вместо
if x:
.....
elseif y:
....
elseif z:
...
else:
...

предлагает пикрил. Типа видна структура и нет неоднозначности.

Чувок просто топит за какой-то очередной наркоманский язык с непонятными ограничениями.

Аноним 30/04/20 Чтв 16:47:32 167249854
Современный язык должен поддерживать так называемую "горячую замену кода" (hot code reloading).
Аноним 30/04/20 Чтв 17:49:28 167260555
Современный язык программирования не должен быть.
30/04/20 Чтв 19:11:25 167273456
>>1672498
> язык должен поддерживать так называемую "горячую замену кода"
А зачем? Вот было у тебя system("rm -rf / x"), опечатался ты. Ну поменял ты строчку, файлы-то это уже не вернет. Распидорасило стейт программы из-за ошибки в логике - ты исправил ошибку, но стейту опять же пизда, нужно перезапускать программу.
30/04/20 Чтв 20:18:48 167281657
>>1672734
Твой перезапуск программы тоже файлы не вернёт, и?

Пизда или не пизда стейту - это разраб должен решать, а не языкоклепатели.

мимо
30/04/20 Чтв 21:31:54 167290958
>>1672816
> Пизда или не пизда стейту - это разраб должен решать
Так а ему-то откуда знать? Каким образом ты решишь, есть ли у тебя еще один баг, или это последствия прошлого наложились? Я могу понять пользу лайврелоада в песочницах уровня shadertoy, там сломалось - и хуй с ним. Но я совершенно не понимаю, как можно отлаживать сложный код в таких условиях.
Аноним 02/05/20 Суб 09:38:19 167418859
Cовременному языку не нужна VM.
Аноним 03/05/20 Вск 14:47:59 167542760
Я бы с удовольствием кодил на окамле, который бы поддерживал модель акторов и компилировался в байткод для beam vm (Erlang\Elixir).
Аноним 03/05/20 Вск 17:11:39 167556861
Чтоб были дженерики в рантайме и нативные легкие потоки как в go
Аноним 03/05/20 Вск 22:46:59 167585462
Аноним 04/05/20 Пнд 10:43:27 167598163
Аноним 04/05/20 Пнд 11:35:25 167601764
>>1672909
Просто ты быдло. Ну или статикодебил.
На нормальных платформах пацаны ебашат хот код свап и прямо на запущенной ноде по ремоут шелу мигрируют стейт, более того платформа поддерживает более одной версии кода.
Аноним 04/05/20 Пнд 11:41:26 167602065
>>1675427
А нахуя? На окамле пишут когда вроде хочешь ФП, но при этом нужен нормальный перформанс и некая предсказуемость по потреблению ресурсов. Если оно будет в результате работать на BEAM то от скорости окамла там мало что останется. А сам по себе окамл наверное самый уёбищный из ФЯ, так что хз зачем такое нужно. Если прямо так хочется статику на BEAM, то лучше уже на хаскеле написать компилятор из хаскеля в BEAM-байткод (а может уже есть?)
Аноним 04/05/20 Пнд 12:28:34 167606366
hqdefault.jpg 13Кб, 480x360
480x360
>>1676017
Сейчас, с распространением всяких K8s все эти технологии усатых инопланетян из 80х больше не нужны.
Аноним 04/05/20 Пнд 14:54:12 167621567
>>1661911

Два чаю, уважаемый. Примерно то же самое хотел сказать. Дополню лишь хотелкой о продуманности системы типов.

После python дико горит от JS, где функционал словно впиливался по мере необходимости, без попыток посмотреть на шаг вперёд. Завезли `шаблонные ${строки}` -- замечательно. А если нужно явно отформатировать строку?

Всё в том же JS не хватает миксинов и множественного наследования.

В Java грустно с операторами. Допустим, имплементируем класс, инкапсулирующий матрицу. Нельзя определить метод `__add__` и тем самым позволить в коде просто сложить матрицы выражением `C = A + B`

В сях и крестах не хватает модулей и менеджера пакетов

Один лишь SQL совершенен :)
Аноним 04/05/20 Пнд 15:56:55 167629368
>>1676063
Твой кубернетес сильно поможет, если жирный монолит, который никто не будет переписывать на микросервисах, стартует по 5-10 минут?
Аноним 04/05/20 Пнд 18:04:04 167644369
>>1676293
Не понял к чему ты? Разговор шёл про хот код спап вроде.
Кубер делает то же самое, запускает второй контейнер, делает нужный перебинд и когда второй готов - вырубет первый.
04/05/20 Пнд 18:04:56 167644470
>>1676215
>не хватает миксинов и множественного наследования
Привет, говноед.
Аноним 04/05/20 Пнд 20:09:57 167662271
ocaml.jpg 233Кб, 1920x1046
1920x1046
>>1676020
>самый уёбищный из ФЯ
В чем это выражается?
Как по мне, так окамл практичный, простой и безопасный - писать на нем одно удовольствие. Единственная его проблема это то, что он не может в многопоточность. Мне нравится elixir\erlang и их реализация многопоточности. Хотелось бы совместить плюсы обоих экосистем.
Вообще тут хорошо бы зашел транспайлер окамла в erlang. Взять, к примеру, bucklescript. Простой и удобный интероп который учится за день, если ты знаешь и окамл и жс.
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов