LINUX.ORG.RU
ФорумTalks

ОН - язык будущего

 , , ,


0

3

Каким должен быть супер-мега-убийца C/C++/Java/etc (эдакий ЯП общего назначения)? Что он должен уметь, какой должна быть стандартная библиотека, что с синтаксисом? А то как ни случись новый язык - так говном поливают и по итогу тонет. Что всё-таки нужно для полного счастья?

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

Да понял я уже, понял. Действительно нагрев будет от сопротивления кабеля зависеть и тока, а не от приложенного напряжения.

Сейчас почитал чё там в америке. Пишут что реально для 110 вольт провод надо толще для той же мощности, НО как говорят другие, их розетки и автоматы примерно точно так же рассчитаны на 15А, т.е. получается что провода примерно такие же, но мощности из розетки меньше высосать можно.

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

У меня жена HGTV кабельное смотрит - там ремонты американские показывают, и вот автоматы там обычно такие, большие, так что, думаю, не меньше 30A. Бытовая техника-то у всех сейчас почти одинаковая.

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

НО как говорят другие, их розетки и автоматы примерно точно так же рассчитаны на 15А, т.е. получается что провода примерно такие же, но мощности из розетки меньше высосать можно.

В Японии иногда ставят розетки на 200 вольт: картинка. А вообще простым людям большая мощность не нужна.

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

Для стиралок они говорят типа три фазы подрубают и получают 220.

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

сравни код на Си из 1988 и из 2018, современный код не выглядит «родным» для языка

Это потому что нынешние писатели такие.

deep-purple ★★★★★
()

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

Пусть у меня есть библиотека X, которая умеет опрашивать состояние портов свитчей определённой модели некоторого производителя. И я решил применить её в программе, которая собирает данные для мониторинга сети. А завтра в сети появился изолированный сегмент, добраться до которого можно только через бастион-хост, который торчит в мою сторону по SSH. Должна быть возможность подсунуть вместо сокета в библиотеку X реализацию проброшенного по TCP через SSH порта. А послезавтра через socks5-proxy и https-proxy.

Часто прикладным программам нужно уметь выполнять асинхронные операции, сцепленные между собой. Такие операции должны уметь завершаться по цепочке (например, если пользователь нажал на кнопку «отмена» или произошла какая-нибудь неустранимая ошибка, то нужно прекратить сразу всё дерево операций) и иметь общие данные (контекст), которые неявным образом передаются дочерним вызовам. Неплохо иметь соответствующие примитивы управления потоками исполнения прямо в языке. Или язык должен быть настолько мета, чтобы их можно было реализовать в стандартной библиотеке.

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

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

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

Исключения. Можно сделать их частью тех примитивов управления потоками исполнения, которые были описаны выше, расширив их до непрямой передачи, но и тут тоже нужен какой-то баланс, как и с прочей расширяемостью.

Хорошим тестом на выразительную мощность, сложность языка (и его синтаксиса) будет написание неоптимизирующего компилятора его самого на нём же. Если язык достаточно хорош, то должен получится код, весь объём которого сможет за разумное время понять один человек, не знакомый с этим языком (пусть даже интересующийся языками очень рязных парадигм и обладающий широким кругозором).

Уметь компилироваться под те платформы, которые сейчас в тренде. Linux под i386, arm, arm64, mips, Windows под arm64, win32 и win64, macOS, уметь мобильные платформы (Android, iOS), WASM. Будет совсем круто, если разработчики рантайма продумают работу в песочницах, чтобы можно было безопасно исполнять недоверенный код.

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

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

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

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

Вот только проблема легаси в том, что устаревшие и не хорошие штуки не удаляются.

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

Ага, не нужна. Включил электрочайник на 2 киловатта, а кто-то решил постирать/погладить (утюг ещё 3 киловатта), вот тебе и 15 ампер+ подъехало. 5000/220=22 ампера, нормальненько так.

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

И ты забыл добавить, что всё это воткнуто в одну розетку через тройник.
Тогда да.
Хотя если через «пилот», то «пилот» самовырубится.

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

вот тебе и 15 ампер+ подъехало

Как уже заметили, это ограничение на одну розетку, а не на весь дом.

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

Даже в разные вырубится на счётчике/щитке, если не тянуть кучу параллельных проводов от жирнючего ввода.

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

Вот только схемы проводки нынче адские стали.

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

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

Видел бы ты что в моём городе бухие «специалисты» делают. Не все в Москве живут. Я вот видел вживую как проводка горит после «специалиста».

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

Видел бы ты что в моём городе бухие «специалисты» делают.

Речь вроде бы шла про страны с 100 вольт (США, Япония). Там со специалистами нормально.

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

Ты там жил не в центре Нью-Йорка, а в какой-нибудь New-Moscow? Я тут на гуглкартах туда заглянул, мой Мухосранск напомнило очень сильно. О им стыдно кажись, в про планете Земля есть панорамы улиц, а в картах гугла нету.

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

Ты там жил не в центре Нью-Йорка, а в какой-нибудь New-Moscow?

В Японии, не Токио.

Я тут на гуглкартах туда заглянул

Внутридомовую проводку теперь на гуглокартах показывают?

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

Уличной достаточно чтобы понять что там жопа. Но да, её тоже показывают для общественных мест и на фотках юзеров.

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

что с синтаксисом?

Если судить по современным языкам то будет постфиксная запись + вывод типов.

ЯП общего назначения … какой должна быть стандартная библиотека

Для общего назначения - всеобъемлющей :)

Aber ★★★★★
()
  • Строгая статическая типизация и ООП

  • Гибридная система управления памятью без GC. Во время компиляции, благодаря строгой статической типизации и анализу кода, автоматически генерировать код освобождения памяти для большинства случаев.

  • Обязательная мощная и легковесная IDE, чтобы даже разрабы из vi завидовали ее отклику и скорости работы. Соответственно ее должны разрабатывать квалифицированные специалисты, а не разрабы с PhD из гугла и прочего мелкософта. Индусов из Eclipse и Intelij IDEA не подпускать и на пушечный выстрел (предварительно составив blacklist по фамильно).

  • IDE позволит разруливать ситуации, где автомат не может разобраться как освобождать память. Здесь на помощь приходит разработчик и подсказывает системе.

  • Исходники в бинарном виде с открытым и понятным стандартом

  • При таком подходе синтаксис не важен. Хочешь пиши в синтаксисе питона, а затем читай в синтаксисе джавы. Хотя конечно будут и ограничения такой гибкости.

  • Проектируется и разрабатывается сообществом за счёт краудфандинга. В том числе стандартная библиотека.

foror ★★★★★
()

Он должен быть графическим, это дает плюсы в виде:

  • Сразу имеется стандартная IDE
  • IDE очень сильно завязана на компилятор что дает полную инфу о всем что происходит
  • Не нужно ждать разбора кода
  • Можно использовать мультиязычные строки, когда в одной строке содержится несколько переводов на разные языки, больше не нужен будет TakoeNazvanieFuncii, теперь можно писать все на русском языке, добавляя перевод на английский что бы все нерусскоязычные поняли суть
  • Никаких ошибок в синтаксисе итд
  • Go To Implenetation и прочее встроены и работают идеально
  • Не нужно экранировать текст
  • В «код» можно вставлять картинки, редакторы, и прочее, можно сделать блок-математики где писать формулы по человечески
  • Наглядность

Так же необходимые качества:

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

Проект с такими характеристиками и целями вы все уже знаете.

AdonisSexyBoy
()

Сишечку причесать и нормалёк

Psilocybe ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.