Представлен релиз языка системного программирования Nim 1.0. Версия 1.0 преподносится как стабильный выпуск с длительным сроком поддержки для которого будет гарантировано сохранение обратной совместимости в стабилизированной части языка. Отдельно в компиляторе доступен экспериментальный режим, в котором будут развиваться новые возможности, которые могут нарушать обратную совместимость. Некоторые API в стандартной библиотеке также пока помечены как нестабильные и будут переводиться в разряд стабильных по мере готовности. Код проекта поставляется под лицензией MIT...Подробнее: https://www.opennet.me/opennews/art.shtml?num=51550
Отступы? Закопайте нахрен. Самое дебильное изобретение, какое только можно было придумать в питоне. И вот нате вам, второй такой...
Зато написать некрасивый (и поэтому нечитаемый) код не получится по определению.
Вы видимо мало чужого кода смотрели
Тут можно потроллить упоминанием голанга, который сам принудительно форматирует исходный код согласно правилам языка. И если ты привык открывать тело функции с новой строки, то ой.
потому что не нужно привыкать к чему-то, что не является следованием гайдлайна языка
Можно красиво отформатировать код, но он при этом будет совершенно нечитаем
> открывать тело функции с новой строкиЗачем так делать вообще?
Ей-богу, я не знаю. Просто знаю людей, которых сводит с ума автоматическое форматирование в голанге.
Как же тогда приходится тем, у которых после закомментирования пары строчек на питоне, скрипт больше не запускается, потому что для этих пары строчек нужно сдвигать другой код. А потом - сдвигать назад.
> Как же тогда приходится тем, у которых после закомментирования пары строчек на
> питоне, скрипт больше не запускается, потому что для этих пары строчек
> нужно сдвигать другой код. А потом - сдвигать назад.Я конечно уже лет 8 ничего на питоне не писал, но звучит как жуткий бред.
Конкретный пример можно?
> Я конечно уже лет 8 ничего на питоне не писал, но звучит
> как жуткий бред.
> Конкретный пример можно?Просто программировать научились, а подменять if var на if 1 — нет.
Возможно, затем же, зачем используются разные виды скобочек.
Чтобы визуально отличались функции от циклов и условий, например.
Или вбейсиком, извините что на ночь глядя помянул.
Так отбивка пробелами без операторных скобок делает _вообще_весь_ код нечитаемым. Попробуй найди, где заканчивается текущий блок,если он длиннее 5 строчек. Ситуация такая же, как если его вообще не отбивать.
Легко, если не ставить пустые переводы строк после операторного блока. И, даже, ошибок абсолютно нечитаемых при этом понаделать, тоже, очень легко.
Фиговый нечитаемый код зависит от прямизны головы и рук, а не от использования скобок вместо отступов.
Каждый раз, когда, читая очередной пихоно-код, гуглю, что означает та или иная конструкция, поражаюсь ущербности пихона. Недавно узнал про такую штуку, как pass. Оказывается в пихоне нельзя создать функцию, в которой нет ни одного стейтмента. Просто синтаксически требуется хотя бы один стейтмент, в связи с чем выдумали кейворд pass, типа аналог NOP из ассемблера. Если в других языках нужно просто удалить всё, что между { и }, то в пихоне удалить не выйдет, нужно заменять фуфловыми заглушками. Ни в каком высокоуровневом языке нет такой шняги на уровне синтаксиса, а в пихоне есть, и есть она исключительно потому, что какой-то гвидончик выдумал такую пРиКоЛьНуЮ)))) штуку, как насильственная организация кода отступами, и больше ничем.
Язык программирования создаеться для людей, и прежде всего это средство общения между програмистами.Поэтому прописывая pass вы явно указываете что намеренно игнорируете исключение,
или намеренно создали пустую функцию без raice NotImplementedИ в будующем открыв такой код - явно будет видно намеренья программиста.
иначе - вдруг вас отвлекли на другую задачу и вы забыли дописать return proxy_ping()
или случайно удалили руками при выделении, или авто заменой.
так же и про оступты - общаяя стилистика кода позволяет быстрее понимать код - что он может и зачем он нужен.Но на мой вгляд главные достоинства в питоне
- интроспеция которая позволяет быстро находить ошибки,
- гибкость - которая позволяет создавать грязные хаки для быстрой проверки гипотиз, и
- портируемость пири отсутсвии процесса компиляции.
эти характиристики ускоряют процесс разработки, удешивляют и позволяют получить результат как можно быстрее.и еще, до кучи - не стоит ругать микроскоп за то что им не удобно забивать жидкие гвозди, нужно понимать цель и выбирать под нее нужные инструменты.
> вдруг вас отвлекли на другую задачу и вы забыли дописать return proxy_ping()То есть случай, когда функция реализована почти полностью, за исключением последней строки, мы не рассматриваем, поскольку он не ложится ровно в концепцию "пихон все проверит, убедится, что все написано". Да?
> случайно удалили руками при выделении, или авто заменой
То есть неосторожная автозамена удалит только те места, где в функции ровно один стейтмент, состоящий из ретурна, да? А все остальное она оставит без изменений?
Приведи более реалистичный сценарий уже. pass — это синтаксический костыль, вызванный решением избавиться от фигурных скобок всеми правдами и неправдами. Это решение изначально ставило целью "упростить язык", но на деле сделало его сложнее.
Непоследовательность пихона очевидна. Вот как выглядит объявление функции, принимающей 1 аргумент: def func(first_arg). А вот не принимающий ни одного: def func(). Здесь нет никаких def func(+++no args and i mean it+++). А вот пустой список стейтментов организовать уже не выйдет, придется "явно указывать, что задумана функция с пустым телом". Непоследовательность.
Ну а в других языках скобки применяются последовательно: {} — пустой блок кода, [] — пустой массив, () — пустой список аргументов, "" — пустая строка. Экстраполируй свои аргументы "автозамена" и "отвлекли" также и на эти моменты и убедись в их несостоятельности. Почему пихон не ругается, что строка пустая? Вдруг программиста отвлекли? Вдруг автозамена была неосторожной? Пусть он пишет ::emptystring:: вместо "".
насчет костыля не согласен
т.к. не вижу сложности реализовать скрипт трансляции
---
def my():
print('123')
---в
---
def my():
pass
#
print('123')
---
это превое)второе - ты путаеш причину и следствие, я не сказал что pass убережет тебя от случайно замены в коде, я сказал что написание pass сообщает другим программистам о ваших намереньях.
пустую строку используют в коде чатсо - нет смысла дополнительно об этом сообщать
пустую функцию используют крайне редко - разве что в monkey patchтретье - я описал сильные стороны питона ниже, привиду еще оду метафору - если вам нравиться магкое и теплое - подушка, полотенце, грелка - то не стоит оценивать все вокруг исходя только из этих параметров.
не нужно судить о языке только по его синтаксическом сахаре причем поверхностно,
я не статью написал об особенностях языка питон - а коментарий, и рассматривать его нужно исключительно в этом контексте а не как справочное руководство или википедию.
> не вижу сложности реализовать скрипт трансляцииТы предлагаешь написать костыль, вызванный неудобствами другого костыля. В других языках первого костыля нет, поэтому второй костыль в лице "скрипта трансляции" писать нужды нет. Поскольку пихон - язык программирования для непрограммистов, нет ничего удивительного в том, что ты предлагаешь решения, выглядящие разумно исключительно с точки зрения тех, кто к программированию имеет крайне слабое отношение. Поскольку ты любитель аналогий, вот тебе такая: pass — это как выравнивать/центрировать текст в ворде пробелами. Там, где можно обойтись более изящными решениями, пустоты достигают путем ввода новой сущности: pass в пихоне или " " в вордовском файле.
> написание pass сообщает другим программистам о ваших намереньях
Это ты уже постфактум придумал предназначение. Изначально это костыль для борьбы с синтаксическими ограничениями пихона: "It is useful as a placeholder when a statement is REQUIRED SYNTACTICALLY, but no code needs to be executed"[1]. И ни слова про "намерения".
> пустую строку используют в коде чатсо - нет смысла дополнительно об этом сообщать
Применю твой же аргумент: "написание ::emptystring:: сообщает другим программистам о ваших намерениях". Оспаривай.
еще раз, не надо додумывать,
я не предлагаю писать костыли, и писать свой велик для трансляции,суть в том что реализовать парсер синтаксиса без pass - дело 5 строк кода,
а значит в python pass добавлен намеренно и не являеться костылем.так же как намеренно не реализован go-to который есть в плюсах - это не показатель что питон полная шляпа.
по остальному, как я уже выше писал смысл в том что не надо оценивать язык по синтаксическому сахору, причем поверхностно.
"Поскольку пихон - язык программирования для непрограммистов"
ты живеш в идеальном мире, программирование это всего лиш инструмент - набор инструкций а не секта,
я оцениваю технологии с точки зрения бизнеса а не религии, поэтому врятли мы с тобой прийдем к общему мнению.
> в python pass добавлен намеренно и не являеться костылемДокументация говорит об обратном. Эту документацию писали разрабы пихона, и разрабы пихона сказали, что это заглушка для тех мест, где синтаксически требуется стейтмент. Значит у них парсер исходников работает именно так. А то, что ты выискиваешь где-то там "намерения и умыслы", ничем не отличается от детских/религиозных представлений о природе: "коровка - чтобы давать людям молоко, солнце - чтобы светить, бог - чтобы создавать солнце и коровок, а pass - чтобы предупреждать программистов о намерениях". А нет, pass - это следствие того, что пихоноразрабы не осилили сделать парсер так, чтобы стейтмент не требовался.
> я оцениваю технологии с точки зрения бизнеса а не религии
Но ведешь себя именно как религиозник. Религиозники повсюду выискивают скрытые смыслы. Птички щебечут не для того, чтобы мы наслаждались их пением. Им тупо хочется трахаться и они рисуются перед самками. А pass - не для явного обозначения пустоты, просто пихонщики не осилили парсинг, о чем прямо сказали в документации.
А по поводу того, что пихон не для программистов: Навальный вон изучает пихон. Это не плохо, и он выбрал верный язык. Потому что карьеру программиста он строить явно не собирается.
смотри, для нормального программиста не важно на каком языке ты пишеш
важно насколько ты быстро решаеш задачу.программист это не монах с религиозными взглядами что есть только один верный язык программирования,
а ты пытаешься идеалогию развить, вот навальный учит, или разработчики в чем то не разобрались,ты лучше подойди со своими взглядами к менеджеру/продукт-овнеру и им доказывай что надо быть православным кодером.
мне честно до лампочки, я юзаю что проще, и меня за это ценят - я просто решаю задачи а не заимствую проблемы из потолка.
если бы у тебя был опыт комерческой разработки - ты бы меня понял, но с таким подходом у тебя на работу не возмут - если только в гос компанию на попил бобла что бы прозводить ИКД.
суровый естесвенный отбор : )
> если бы у тебя был опыт комерческой разработки - ты бы меня понял, но с таким подходом у тебя на работу не возмутСитуёвина такова, что это скорее я выбираю работодателей, чем работодатели меня. Когда на собеседовании я выясняю, что мне скорее всего придется поработать с пихоном, я тут же встаю и ухожу, поскольку:
1) Нужно иметь хотя бы минимальное самоуважение. Пихон не тот язык, на который стоит тратить единственную и короткую жизнь. Любой другой язык этого заслуживает, а конкретно пихон — нет. Это к слову о том, что я скорее придерживаюсь мнения о том, что "есть только один НЕверный язык программирования" (читай внимательнее мои комменты, братюня).
2) Пихон не имеет перспектив. Проекты, написанные на пихоне, либо умирают, либо переписываются на вменяемых языках (yum → dnf например). Пихон самый тормозной язык, что показала недавняя новость про реализацию драйвера сетевухи на высокоуровневых языках. Пихонокод — write-only, достаточно недели, чтобы автор перестал понимать свой собственный хитрожопый пихонокод (пихон поощряет писать такой код своими хитрожопыми пихоноконструкциями).
И кстати, я не устраиваюсь работать туда, где есть некий "менеджер", которому надо было бы что-то "доказывать". В крупных компаниях разработка достаточно изолирована от остальных отделов, так что можно проработать лет пять — и ни разу в глаза не увидеть пресловутого "менеджера"/"продукт-овнера". И ему, как правило, плевать на стек, за это отвечает глава подразделения, который уже вполне открыт для чисто программерской аргументации.
Одним словом, ты как маугли, воспитан волками^W менеджерами, и программерского будущего у тебя нет. Есть только менеджерское от силы, туда и воюй.
> правило, плевать на стек, за это отвечает глава подразделения, который уже
> вполне открыт для чисто программерской аргументации.поработаеш годик в комерческой разработке - поймеш что глупость сказал
то что ты описал не относиться ни к галерам ни к интерпрайзу ни к часным заказам,
Наоборот. Поработай в коммерческой разработке с мое — и поймешь, что я прав.(твои "аргументы" чрезвычайно легко направлять против тебя же самого, и ты с ними ничего поделать не сможешь)
> Поскольку пихон - язык программирования для непрограммистовБред какой...
>> Поскольку пихон - язык программирования для непрограммистов
> Бред какой...+1 и добавить нечего : )
Если ты программы [ЕГЭ моде он] пишеш также грамматна как па русске [ЕГЭ моде офф], то лучше тебе сменить область деятельности.
Ты когда идеш к доктару или вызываеш такси, вначале просиш его пройти тест на знание грамматики русского языка?
какими еще принципами оценки навыков ты пользуешься?Не хочу тебя шокировать - но русский не мой родной язык, я даже не проживаю в Росии.
Вообще тебя ждет в переди еще куча невероятных открытий, например если ты закроеш глаза - станет темно только тебе, и если закрыть лицо руками то тебя всеравно видно! это правда, часно - если мне не вериш можеш спросить у своей мамы или в школе.
Для общения программистов между собой создаются форумы, системы контроля версий и т.д., а не языки программирования. Языки программирования создаются для описания алгоритмов и данных, которые обрабатываются на компьютерах.
> Для общения программистов между собой создаются форумы, системы контроля версий и т.д.,
> а не языки программирования. Языки программирования создаются для описания алгоритмов
> и данных, которые обрабатываются на компьютерах.не согласен - лучшая документация чистый апи и читабельный код
все остальное второстипенноописать алгоритм можно и математичским языком, так же интерпритатор его без проблем поймет
язык все же для людей поэтому идет неулонное движение от асамблера к более высоким степеням абстракции
> Ни в каком высокоуровневом языке нетТы знаешь слишком мало языков.
> Каждый раз, когда, читая очередной пихоно-код, гуглю, что означает та или иная
> конструкция, поражаюсь ущербности пихона. Недавно узнал про такую штуку, как pass.И отписался в теме о совершенно другом ЯП. Бывает. Держите нас в курсе!
> в пихоне есть, и есть она исключительно потому, что какой-то гвидончик
> выдумал такую пРиКоЛьНуЮ)))) штуку, как насильственная организация кода отступами, и больше ничем.Нет, совсем не поэтому (см. хотя бы предмет новости – там оно "почему-то" не нужно).
забалела? полечися!
зы прайсы по программистам посмотри, болезниный. рыночек порешал, тебя не спросил?
Самое меньше будет быдлокодеров, совсем не форматирующих код.
Отступы - самое гениальное что есть в Питоне!!! Читать чужой код хоть стало возможно!
>Читать чужой код хоть стало возможно!Сразу видно человека который не видел код на питоне.
def possibilities():
alphabets=(n,o,r,t,h,e,a,s,u,w,m,y)
combinations=list()
for n in range(9,-1,-1):
for o in range(9,-1,-1):
for r in range(9,-1,-1):
for t in range(9,-1,-1):
for h in range(9,-1,-1):
for e in range(9,-1,-1):
for a in range(9,-1,-1):
for s in range(9,-1,-1):
for u in range(9,-1,-1):
for w in range(9,-1,-1):
for m in range(9,-1,-1):
for y in range(9,-1,-1):
if len(set([n,o,r,t,h,e,a,s,u,w,m,y]))==12:
north=10000*n + 1000*o +100*r +10*t +h
east=1000*e +100*a +10*s +t
south=10000*s + 1000*o +100*u +10*t +h
west=1000*w + 100*e +10*s +t
earth= 10000*e + 1000*a + 100*r +10*t +h
if north +east +south +west == earth:
combinations.append((north,east,south,west,earth))return combinations
Налажал ты с отступами, анон. Я пофиксил:
def possibilities():
alphabets=(n,o,r,t,h,e,a,s,u,w,m,y)
combinations=list()
for n in range(9,-1,-1):
for o in range(9,-1,-1):
for r in range(9,-1,-1):
for t in range(9,-1,-1):
for h in range(9,-1,-1):
for e in range(9,-1,-1):
for a in range(9,-1,-1):
for s in range(9,-1,-1):
for u in range(9,-1,-1):
for w in range(9,-1,-1):
for m in range(9,-1,-1):
for y in range(9,-1,-1):
if len(set([n,o,r,t,h,e,a,s,u,w,m,y]))==12:
north=10000*n + 1000*o +100*r +10*t +h
east=1000*e +100*a +10*s +t
south=10000*s + 1000*o +100*u +10*t +h
west=1000*w + 100*e +10*s +t
earth= 10000*e + 1000*a + 100*r +10*t +h
if north +east +south +west == earth:
combinations.append((north,east,south,west,earth))
return combinationsВот теперь всё работает!
а вот если бы автор не поленился и скопировал еще пару строк кода (не входящих в тело цикла) - хрен бы ты пофиксил.и это главная проблема отступов, потому как язык не должен существовать только внутри специально созданных для него редакторов.
> а вот если бы автор не поленился и скопировал еще пару строк
> кода (не входящих в тело цикла) - хрен бы ты пофиксил.Если в коде нету других ошибок, кроме неправильных отступов, то пофиксить будет проще простого.
> и это главная проблема отступов, потому как язык не должен существовать только
> внутри специально созданных для него редакторов.И это же одновременно его достоинство.
> а вот если бы автор не поленился и скопировал еще пару строк
> кода (не входящих в тело цикла) - хрен бы ты пофиксил.
> и это главная проблема отступов, потому как язык не должен существовать только
> внутри специально созданных для него редакторов.помойму сейчас мало кто разрабатывает без IDE - нет смысла перекладывать работу на внимательность которую может выполнить программа
if north +east +south +west == earth:
combinations.append((north,east,south,west,earth))
return combinations
> Вот теперь всё работает!Что-то мне подсказывает, что задумка была возвращать все комбинации, а не только первую найденную.
А еще что-то подсказывает, что "alphabets=(n,o,r,t,h,e,a,s,u,w,m,y)" вообще невалидный синтакс.
Ну и по мелочи:
"if len(set([n,o,r,t,h,e,a,s,u,w,m,y]))==12:" читается как "все переменные с разными значениями",
переменных 12, возможных значений 10 - хм, что тут может быть не так?Изи фикс:
def possibilities(): return []
Я имел в виду отсутствие ошибок форматирования отступами.Копипаста гуглится:
А там указан первоисточник шедевра:
https://stackoverflow.com/questions/50018740/what-am-i-missi...
Под тегом data-science, между прочим. :)
> Я имел в виду отсутствие ошибок форматирования отступами.
> Копипаста гуглится:
> https://shitcode.net/280Я скорее имел в виду, что сам пример, приведенный анонимом в #64, изначально не просто весь насквозь искусственный (и очень возможно был "вбросом" на SO), но еще и абсолютно не рабочий.
И смысл демонстрации [аноном в #64] на таких примерах какой-то очень сомнительный.
Тем более, когда при этом рядом топят за сишку с ее:
volatile const static signed long int* const restrict borsch = {(const volatile void*)0};
или
for (;P("\n"),R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("|"+(*u/4)%2);
или
??=include <stdio.h>
%:include <stdint.h>
int hi(void) <% return 1337; }
int main(void) <%
int foo[10:> = ??< 0 %> ;
foo<:0] = 1337;
printf("hello %d %d", foo??(0??), hi());
return 0;
??>
(хотя не совсем корректная аналогия получилось -- минимум 2 примера рабочие) :)
> Я скорее имел в виду, что сам пример, приведенный анонимом в #64,
> изначально не просто весь насквозь искусственный (и очень возможно был "вбросом"
> на SO), но еще и абсолютно не рабочий.
> И смысл демонстрации [аноном в #64] на таких примерах какой-то очень сомнительный.Целиком и полностью согласен. Я даже у себя на локальной машине файл с этим кодом назвал govnokod.py, ещё не зная, откуда он взят, и дописал в конце print "OK", дабы был хоть какой-то полезный выхлоп.
> Тем более, когда при этом рядом топят за сишку с ее:... поскипано
> (хотя не совсем корректная аналогия получилось -- минимум 2 примера рабочие) :)
И это подводит нас к весьма свежей и новаторской идее: примеры надо давать какие-то осмысленные, а не чтобы место чем-то заполнить. :)
Эт да! То ли дело скобки!
list* possibilities(void){
list* combinations=list();
for (int n = 9; n> -1, n-=1) {
for (int o = 9; o> -1, o-=1) {
for (int r = 9; r> -1, r-=1) {
for (int t = 9; t> -1, t-=1) {
for (int h = 9; h> -1, h-=1) {
for (int e = 9; e> -1, e-=1) {
for (int a = 9; a> -1, a-=1) {
for (int s = 9; s> -1, s-=1) {
for (int u = 9; u> -1, u-=1) {
for (int w = 9; w> -1, w-=1) {
for (int m = 9; m> -1, m-=1) {
for (int y = 9; y> -1, y-=1) {
if (len(set([n,o,r,t,h,e,a,s,u,w,m,y]))==12) {
int north=10000*n + 1000*o +100*r +10*t +h;
int east=1000*e +100*a +10*s +t;
int south=10000*s + 1000*o +100*u +10*t +h;
int west=1000*w + 100*e +10*s +t;
int earth= 10000*e + 1000*a + 100*r +10*t +h;
if (north +east +south +west == earth){
combinations.append((north,east,south,west,earth))
return combinations;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
12 вложеннннных циклов трепещу ... о вилукий прлвавагммваст
А нефиг такой говнокод писать
ИЧСХ, анон притащил его из соответствующего места:
def possibilities():
combinations = list()
options = list(range(9, -1, -1))
for n, o, r, t, h, e, a, s, u, w, m, y in product(*[options] * 12):
if len({n, o, r, t, h, e, a, s, u, w, m, y}) == 12:
north = 10000 * n + 1000 * o + 100 * r + 10 * t + h
east = 1000 * e + 100 * a + 10 * s + t
south = 10000 * s + 1000 * o + 100 * u + 10 * t + h
west = 1000 * w + 100 * e + 10 * s + t
earth = 10000 * e + 1000 * a + 100 * r + 10 * t + h
if north + east + south + west == earth:
combinations.append((north, east, south, west, earth))
return combinations
Самое дебильное изобретение, какое только можно было придумать в ЯПах - это убогие скобки.
точно КУМИР вот образец
Скобки еще терпимо, а вот точки с запятой обязательные уже задолбали -_-
А вы программируете (не важно на чем) без отступов? А если с отступами, то не замечаете ли вы в добавлении фигурных скобок (или чего там у вас вместо них) избыточности, не кажется, что это не лаконично?Я тоже плевался на Питон в свое время (и на отступы и на отсутствие поддержки приватных полей в классе и особенно на snake_case), но стоило пересилить себя и привыкнуть и теперь уже напрягает обратное (кроме приватных полей, если тебе нужен доступ извне к таковому - это очень плохой признак).
Сейчас стыдно признать, даже переходя с винды на Linux мне казалось ужасным, что все пути начинаются с общего корня, а не с буквы диска. Также казалось уродливым глобальное меню на Маке и в Unity, потом стало казаться неуклюжим наличие отдельного меню в каждом окне.
Мозг так устроен, что всегда считает единственно-правильным то, к чему привык.
Три поросенка: nim-nim, neh-neh и nah-nah?
а еще пох.
nan-nan
Адовый ад с этими отступами, где пробела, где табы, ищи почему не работает
В ниме только пробелы.
В UTF-8 штук так двадцать разных пробелов (точно число не помню)
Space, no-break space, en quad, em quad, en space, em space, three-per-em space, four-per-em space, six-per-em space, figure space, punctuation space, thin space, hair space, narrow no-break space, medium mathematical space, braille pattern blank, ideographic space ну и всякие там zero-width space, word joiner и компания, но они уже непечатные обычно.
В выражениях ЯП допустимы только символы с номерами 32 - 127 ASCII. Всё остальное только в качестве текстовых строк и комментариев.
В выражениях ЯП должен быть весь юникод. Чай не в 19 веке в англии живем.
Тогда вам, вероятно, понравятся Рапира, Шпага, что там ещё было придумано в 1970/80-е в СССР.
Большинство современных взрослых языков программирования поддерживают юникод. А в вашем ерничанье я вижу только глупость.
Вы таки неправы, можно использовать ЛЮБЫЕ юникодовые идентфикаторы для названий процедур/переменных/типов, но конечно же никто этого не будет делать.
https://play.nim-lang.org/#ix=1WPS
> Вы таки неправы, можно использовать ЛЮБЫЕ юникодовые идентфикаторы для названий процедур/переменных/типов,
> но конечно же никто этого не будет делать.
> https://play.nim-lang.org/#ix=1WPSЭто неинтересный пример ;)
template 🗣(👍) = echo(👍)let 🦄 = "🌈"
🗣 🦄
вполне компилируется и работает.
Небольшое замечание - в Unicode. UTF-8 - это только одна из кодировок.
Можно закапывать. Я бы не рискнул пользоваться ЯП с разработчиками, чей уровень (не)адекватности позволил им выпилить табы.
Мешать пробелы и табы в одном файле вообще не стоит. На любом языке.
Да можно и дальше пойти - в обычных документах, предназначенных для текстового процессора, этого тоже не стоит делать. Вёрстка поползёт.
И в обычных текстовых файлах тоже не нужно - может оказаться неудобно обрабатывать Vim'ом. Короче, бардак всегда зло.
Надо запретить табуляцию.
В конфигах нужно пользоваться только табами. Иначе вёрстка поползёт. В мейкфайлах, в исходниках на си, да много где. Если настроить вим, то в скриптоте (включая питон) тоже лучше пользоваться табами. Кто вообще придумал отступы пробелами делать? У некоторых программистов секретарша головного мозга, или им платят за размер файла?
Как будто, все предпочитают/любят vim.
Табы хороши ровно до тех пор, пока длина строки не ограничена гайдлайнами. А как только ограничение появляется, оказывается, что длина строки зависит от ширины таба. Получается, в гайдлайне нужно явно указывать ширину таба. Ой.
А ещё ширина строки зависит от шрифта и его размеров, угу.
Тогда просто ширина таба в IDE задается одинаковая для всех разработчиков. И если ширина таба и длина строки не указаны в гайдлайне, то каждый разработчик выставит удобную ему ширину. А то одному удобны отступы в 2 пробела, а другому - в 6. Каждый ставит свое значение и верстка не расползается.
>или им платят за размер файлаКак будто нет страны, которая этим прославилась.
Не надо ныть здесь о том, что ты не можешь настроить текстовый редактор. Читай лучше мануал к своему текстовому редактору.
Используйте Pycharm - там подобные проблемы заранее предусмотренны
kwrite прекрасно питоновские скрипты переваривает и еще умудряется подсказывать. а на счет табов верно. вся верстка от них летит к чертям даже в обычных документах, а если в питоновских скриптах и еще паре других, у тебя вместо программы может получится полный мусор, хотя питон не так радикален.
pycharm автоматом заменят табы на пробелы,
+ есть поддержка для django, да и в целом семантический анализ объектов работает хорошо
+ дебаг с интерактивным режимом
+ гит плагин - удобно конфликты разрешатьв общем для работы все же пичарм
если просто глянуть код или мини скрипт до 50 строк то можно просто обычным редактором с подсветкой обойтись
а нехер пробелы ставить
Что-то мало ЯП. Нужно больше.
этот язык старше тебя
Его начали разрабатывать ещё до Си?
Нет, просто все что ты сейчас видишь - это сон, а на самом деле тебе скоро пора вставать и топать в школу.
Хорошо, что сон, а ты просто неудачная проекция моего мозга.
вот что только не придумают лишь бы С не учить.
Си не является серебряной пулей
Ой, лишь бы си не учить
Я знаю Си)
На испанском?
Шмишно
На ирландском.
- Вы программист? На чем вы программируете? (на английском)
- (низуя не понимая по английски, так как испанец, но на всякий случай и с улыбкой) Си, сеньор.
Я ж надеюсь, это не всерьез, чисто ради красного словца
Хотя на Си можно написать всё, это прежде всего язык системного программирования для профессионалов. Для прикладного же программирования и для _всех_ были созданы, к примеру, Бейсик и его диалекты. Но руконогим почему-то зазорно использовать то, что специально для них придумано. Ведь так хочется почувствовать себя крутым продолжателем дела Ритчи!
> прикладного же программирования и для _всех_ были созданы, к примеру, БейсикПробовали факторизацию матриц среднего порядка (так примерно 10000) сделать на Бейсике и на Си? На Си считается несколько десятых долей секунды. На Бейсике дождаться окончания расчета не представляется возможным. Вот вам пример прикладного программирования на Си.
На каком из диалектов Бейсика ты так облажался? Если у тебя не получается написать программу на Бейсике — подумай о том, чтобы сменить профессию. :)Видишь ли, анон, все языки программирования в конечном итоге создают последовательность машинных команд, которые процессор внутри себя обрабатывает, причём не обязательно в том же порядке, в каком они поступили. Залог успеха вовсе не в какой-то особой крутизне языка Си.
А причём тут язык? Никто же не запрещает написать какой нибудь более быстрый бейсик или вовсе такой, чтобы сперва транслировался в C, а затем компилировался, как сабж.
> А причём тут язык? Никто же не запрещает написать какой нибудь более
> быстрый бейсикТакой бейсик уже есть и написан до бейсика. Называется Фортран.
>> А причём тут язык? Никто же не запрещает написать какой нибудь более
>> быстрый бейсик
> Такой бейсик уже есть и написан до бейсика. Называется Фортран.Современные бейсики умеют так много, что почти всё. Пруфы предоставят: PureBasic, PowerBASIC, FreeBASIC, Decimal BASIC, True BASIC (от создателей оригинального Васика), даже SmallBASIC. Из них много бесплатных — бери и пиши сразу свои программы, не мучаясь вечными вопросами.
Вопрос тут одни. Зачем этот зоопарк? Есть стандарт и это Фортран.
> Вопрос тут одни. Зачем этот зоопарк? Есть стандарт и это Фортран.Молодые поколения не желают изучать стандарты. Устарело, говорят. Подавай нам модное и молодёжное, говорят. И бесчисленно раз изобретают вновь и вновь на Жабе Кобол для бизнеса, а на Пихтоне — Фортран для вычислений, а на Сишечке и её детках — Бейсик для прикладных задач.
>> Вопрос тут одни. Зачем этот зоопарк? Есть стандарт и это Фортран.
> Молодые поколения не желают изучать стандарты. Устарело, говорят. Подавай нам модное и
> молодёжное, говорят. И бесчисленно раз изобретают вновь и вновь на Жабе
> Кобол для бизнеса, а на Пихтоне — Фортран для вычислений, а на
> Сишечке и её детках — Бейсик для прикладных задач.про кобол надеюсь шутка, в нем даже функций нет, все на go-to,
в 2019 на нем еще пишут - но только из за легаси + дешовые макаки,вроде как банки на java перешли, вроде Mainframe z/os поддерживает
>> Вопрос тут одни. Зачем этот зоопарк? Есть стандарт и это Фортран.
> Молодые поколения не желают изучать стандарты. Устарело, говорят. Подавай нам модное и
> молодёжное, говорят.Видывали такое, а как же. Зачем далеко ходить? Вот что давеча подавал тут один советчик:
> Современные бейсики умеют так много, что почти всё.
> Пруфы предоставят: PureBasic, PowerBASIC, FreeBASIC,
> Decimal BASIC, True BASIC (от создателей оригинального Васика),
> даже SmallBASIC. Из них много бесплатных —
> бери и пиши сразу свои программы, не мучаясь вечными вопросами.Вы, батенька, пароли не оставляйте приклеенными бумаговкой на дисплее монитора и разлогинивайтесь. Знаем мы этих внучков шустрых, понапишут из под дедов, потом не откорячишься.
А ты почитай про перечисленные Васики. Открой для себя новый мир, в котором люди пишут прикладной софт без постоянной беспорядочной пальбы по собственным ногам.Я тебе, 294-й, приоткрою даже больше тайн мироздания: есть специальные Васики для писания ПО для контроллеров и прочей эмбеды. Живи теперь с этим. :)
А знаешь, почему многие люди любят Васик, и почему он переживёт большинство «крутых» ЯП? Потому что программирование на нём даёт то, что англоязычные называют словом fun. Много-много удовольствия. А программирование на Сишечке большинству даёт лишь головную боль о том, что где-то притаились незамеченные ошибки. Ибо надо подбирать инструменты сообразно задачам, а не по религиозным предрассудкам.
Мне больше заняться нечем, как вспоминать, какой из них использует fasm как беэкнд и чем они отличаются от какого-нибудь Laser Basic. Бейсики, как ты сам заявил, созданы для руконогих, вот сам и пользуйся.
> Мне больше заняться нечем, как вспоминать, какой из них использует fasm как
> беэкнд и чем они отличаются от какого-нибудь Laser Basic.PureBasic. И генерирует при этом быструю и компактную малварь.
https://habr.com/ru/post/176123/
А на PowerBASIC, к примеру, в заморских Америках пишут коммерческий софт для ответственного применениях. Как тебе такое, а?Ты ж понимаешь, надеюсь, что современные Бейсики — это совсем не тот первый BASIC, что был в незапамятные времена.
> Бейсики, как ты сам заявил, созданы для руконогих, вот сам и пользуйся.Ничего такого я не заявлял, это твои лживые домыслы. А я сказал, что Бейсики созданы _для всех_ для прикладного программирования, в отличие от тоже высокоуровневых, то более «профессионально специализированных» ЯП наподобие Фортрана или Си.
Но когда люди, которым на самом деле не нужны возможности Си, таки хватаются за Си — это глубоко порочная практика. На Си надо писать маленькие компактные программы и только тогда, когда их нельзя написать на чём-то другом, менее «остром». Большие программы надо писать на безопасных языках и по безопасным методологиям. Да хотя бы на Жабе, на Паскале или на Аде. Но все же мнят себя крутыми: я могу, я напишу это на Си. Хотя при этом опять же все знают, что количество ошибок растёт с объёмом кода независимо от желания или нежелания погромизда. Особенно впечатляет использование Си и плюсов для написания автомобильного софта, убивающего потом людей.
> пишут коммерческий софт для
> ответственного применениях. Как тебе такое, а?Никак. Это их дело.
> Но когда люди, которым на самом деле не нужны возможности Си, таки
> хватаются за Си — это глубоко порочная практика.Ты не Прокруст случаем?
Не расстраивайся, анон, будет и на твоей улице праздник. В утешение тебе я принёс рыбок, что прилагаются в качестве примеров к МелкоВасику*:
'aquarium v2.bas SmallBASIC Bpf 2015-10-15 MGA/B+
'v2 the plasma color is set at initialization and stays with fish
'v2 the fish swim and are drawn both ways
option base 1
n=30
dim x(n),y(n),l(n),dx(n),dy(n),rr(n),gg(n),bb(n)
for i=1 to n
x(i)=rnd*xmax:y(i)=rnd*ymax:l(i)=rnd*xmax*.0625+18
d=int(rnd*2)
if d then dx(i)=rnd*8+1 else dx(i)=-1*(rnd*8)-1
r+=.2:g+=.005:b+=.010
if r>.5 then r=.02
if g>.5 then g=.005
if b>.5 then b=.01
rr(i)=r:gg(i)=g:bb(i)=b
nextwhile 1
for i=0 to ymax
line 0,i,xmax,i,rgb(0,0,255-(i/ymax)*255)
next
for i=1 to n
x(i)=x(i)+dx(i)
if x(i)+1.25*l(i)<0 then dx(i)=-1*dx(i)
if x(i)-1.25*l(i)>xmax then dx(i)=-1*dx(i)
y(i)=y(i)+int(rnd*5)-2
for ra=1 to l(i)
plasma=RGB(127+127*sin(rr(i)*ra),127+127*sin(gg(i)*ra),127+127*sin(bb(i)*ra))
if dx(i)<0 then
line x(i)+ra,y(i)-ra,x(i)+ra,y(i)+ra,plasma
else
line x(i)-ra,y(i)-ra,x(i)-ra,y(i)+ra,plasma
end if
next
for ra=5 to .3*l(i)
plasma=RGB(127+127*sin(rr(i)*ra),127+127*sin(gg(i)*ra),127+127*sin(bb(i)*ra))
if dx(i)<0 then
line x(i)+l(i)+ra,y(i)-ra,x(i)+l(i)+ra,y(i)+ra,plasma
else
line x(i)-l(i)-ra,y(i)-ra,x(i)-l(i)-ra,y(i)+ra,plasma
end if
next
if dx(i)<0 then
circle x(i)+.25*l(i),y(i),.1*l(i),1,0 filled
circle x(i)+.25*l(i),y(i),.06*l(i),1,14
else
circle x(i)-.25*l(i),y(i),.1*l(i),1,0 filled
circle x(i)-.25*l(i),y(i),.06*l(i),1,14
end if
next
delay 10
showpage
wendhttps://fastpic.ru/fullview/106/2019/0924/51c4b178be8508744f...
Не поверишь: они туда-сюда плавают в окошке. :)
> На Си считается несколько десятых долей секунды. На Бейсике дождаться окончания расчета не представляется возможным. Вот вам пример прикладного программирования на Си.Вот что только не навыдумывают себе, лишь бы не учит Фортран.
Си это язык общего назначения. Его можно использовать как для написания низкоуровневой так и для прикладных программ. Вообще разделение на прикладные и системные является только семантикой в голове человека.
>вот что только не придумают лишь бы С не учить.В C нет классов, а его надмножество Objective-C не взлетел.
А - если вернуться в реальность.
Пишу в ООП-стиле на С лет уже 15...
Про Objective-C - особенно жирно было. Аж монитор расплавленным салом замироточил...
>Пишу в ООП-стиле на С лет уже 15...Оно, конечно, можно принимать пищу обратным направлением, но зачем так мучаться?
Есть же, к примеру, C++ на крайняк.
> Objective-C не взлетелВ первую очередь из-за синтаксиса и сложностей в реализации ФП. Все известные мне яблочники (да и я тоже) с гиканьем мигрировали на Swift как только он появился.
с синтаксисом-то что тебе не так? Форматирования табами не хватает?
> с синтаксисом-то что тебе не так? Форматирования табами не хватает?Сяшечный код можно форматировать как угодно (и даже не форматировать вообще). [someInstance callMethod:argument] - вот от этого до сих пор вздрагиваю. А как выглядит классическая цепочка filter - map - reduce (при условии что ты реализовал эти методы) - вообще в кошмарах снится.
В С нет классов исключительно потому что они не нужны ни в каком языке программирования. В том же Го нет классов и он отличный язык в отличии от Nim.
> В С нет классов исключительно потому что......ты не знаешь, как реализовать их в Си.
Потому что то что ты называешь классами не далеко ушло от того что в Го называется struct.
> Потому что то что ты называешь классами не далеко ушло от того
> что в Го называется struct.Они точно так и в Си называются.
Struct как бы он не различался в Го и в C имеет примерно никакого отношения к классам. У классов может быть и наследование 8 уровня и инкапсуляция всего во все. И это сделано исключительно чтобы запутать код. В нормальных языках этой ерунды нет.
> Struct как бы он не различался в Го и в C имеет
> примерно никакого отношения к классам. У классов может быть и наследование
> 8 уровня и инкапсуляция всего во все.В Си это неудобно, но возможно.
Боже, год от года анонимы все тупее и тупее. Они даже разучились в гугле запросы писать.раз: https://www.pvv.ntnu.no/~hakonhal/main.cgi/c/classes/
два: http://ooc-coding.sourceforge.net/docs/ooc.html/Implementing...
Ты серьёзно? Пихать одни структуры в другие структуры и называть это наследование? Мало того что это называется композиция. Так это такой же антипатерн как и классы с 8 уровнями наследования.
Я всегда был уверен, что они и в цопепе так называются.
> Я всегда был уверен, что они и в цопепе так называются.Там есть ещё вариант с закрытыми по умолчанию членами.
Ну и как наследовать структуры?
При помощи композиции.
> вот что только не придумают лишь бы С не учить.Что наглядно показывает, насколько хорош C для решения повседневных задач, не связанных с написанием драйверов, сборщиков мусора и прочего низкоуровневого добра. Ну, мы-то с вами знаем, что настоящие программисты ошибок не делают, а настоящие программы не жрут память, не сегфолтятся, не имеют уязвимостей... поэтому всё надо писать на C. А лучше сразу на LLVM IR, а то слишком высокоуровнево, не труъ.
В вот и сектанты подъехали
> что позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусораА если учесть, то позволяет добиться производительности близкой к Python
Golang? Java?
Java? Ты это серьезно?
Ну лакавство же 99.9%.
>> что позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусора
> А если учесть, то позволяет добиться производительности близкой к Pythonhttps://nim-lang.org/docs/manual.html
> Nim distinguishes between traced and untraced references. Untraced references are also called pointers. Traced references point to objects of a garbage collected heap, untraced references point to manually allocated objects or to objects somewhere else in memory.Если вы не смогли написать код без использования GC, то кто же вам виноват?
ну как бы в Nim'е при всё желании отключить GC полностью получится только на слвоах, а на деле *йтамплавал*
> ну как бы в Nim'е при всё желании отключить GC полностью получится
> только на слвоах, а на деле *йтамплавал*Не только на словах. Просто без сторонних либ и, тем более, std - придется довольно таки грустно.
Но таки следует различать чисто ЯП и "bundle" ЯП c std, рантаймом и шахматессами.Да и GC там вроде бы разные есть, окромя счетчика ссылок, есть.
*йатамтожекогдатоплавал*.
nim симпотный язык. Можно сказать один из самых симпотных и удобных. Даже отступы там можно сказать в тему. Кто интересуется языками и ещё не щупал (понятно что таких немного, но вдруг +)), настоятельно рекомендуем ознакомиться.
Что-то примеры на из сайте напоминают yaml 🤢
только в типам и как будто это что-то плохое.
Сразу видно опытных разработчиков - когда отступы в языке самое главное!
Что не так? Исходный код должен быть воспринимаем человеком.
Пишите на Ruby. У него и код должен быть человечным, и отступы автоматически рубокопом расставляются.
самое обсуждаемое и важное - отступы, да. по крайней мере среди местной экспертоты :D
у меня даже текстовик кврайт отступы правильно ставит.
>Язык Nim использует статическую типизацию и создан с оглядкой на Pascal, C++, Python и LispЧем это лучше, чем haxe?
чем грузины.
Лучше haxe ничего нет
Меня напрягает регистронезависимость идентификаторов, например. Я не понимаю, зачем в современном языке устраивать эту вакханалию.
нет там никакой регистронезависимости и не было никогда
Была, а сейчас там вообще какое-то сумасшествие:
https://nim-lang.org/docs/manual.html#lexical-analysis-ident...В качестве преимуществ указывается то, что каждый может писать идентификаторы в любимом стиле - humpStyle или snake_style, и что не нужно запоминать их точное написание. Это правило работает и для ключевых слов: notin, notIn и not_in - одно и то же.
Не знаю, как там остальной язык, но эта часть уже очень напрягает.
язык.уКоторогоВСтандатнойБиблиотекеКемелНотацияИлиДругаяВычурностьНеИмеетБудущего, как альтернатива c
Правильно. Главное в языке как там записаны имена функций. Это самое главное.
Ну это же язык
к 1Сникам...
А мне нравится такое именование traTaTa. Оно короче на количество пробелов, чем tra_ta_ta.PS Иногда чуть-чуть смешиваю стили именования:
Prefix_MyTypeNumberOne
на каком языке программируете?
С++. Чуть на D попробовал.
Действительно, Java и дотнет тому подтверждение
Nimнужен
За 10 лет шкодинга на Python всегда использовал и пробелы, и табуляцию одновременно. И ни разу не видел проблем из-за этого. Может все потому что не поленился поставить, настроить и использовать нормальные IDE (PyScrypter, PyCharm, Geany, VisualStudioCode)?20 пробельных символов в Unicode? - Не, не слышал. Обычно ставлю пробел - клавишей "пробел". Это всегда один и тот же символ.
Коллеги, поймите же: отступы нужны не для визуального отображения циклов и тел функций. А для борьбы с кодо-графоманством. Да-да! Вам просто приходится писать короткие строки кода из-за отступов, избегать вложенных циклов и ф-ий, выносить часть кода в функции даже тогда, когда не хочется. И это работает, причем с третьего дня - ненавязчиво.
Регистрозависимость идентификаторов - это тоже благо. Все ключевые слова языка набираются строчными, тупо экономя вам время (3-5%). А если учесть ненужность скобок, ";" и втрое(!) меньшее кол-во ключевых слов языка - на питоне кодится в ~4 раза быстрее.
Настоящий speedcoder никогда не жмет на Shift с буквами. Даже в тех ЯП, которые имеют ключевые слова в разном регистре (типа VBA). Это правильно, потому что опечатка тут же обнаружится. рrint или pirnt не превратится в Print, т.к. в первом слове р - кириллица, а второе слово написано с опечаткой.
> нормальные IDE (... VisualStudioCode)?Шутка засчитана.
Хотя бы похожа на IDE больше, чем Geany
Сейчас бы ещё всерьёз вспоминать Сцинтиллу.
А в чем шутка-то? В том что он на електроне написан? Так он на нем работает стабильнее, чем куча мусорных и проприетарных IDE написаных на других япах. Уже не говоря о том, что им банально удобнее пользоваться. За вебом будущее, смиритесь.
Рейтинг IDE, VSC в тройке. Всегда.
https://itvdn.com/ru/blog/article/cplspls-top7
> speedcoderfast-shooter
Не вижу в новости упоминания, чем очередной язык лучше того что есть и какие цели преследуют авторы этого поделия.
Все такие проекты преследуют одну цель: заимствовать удачные особенности Питона (синтаксис) и сделать компилируемый аналог без его недостатков (питон медленный).
Это не повод для создания нового языка. Достаточно новой редакции, как делают в C++, 11, 14,17. А так я вижу, кому то просто нечего делать. Это не плохо, тогда было бы лучше написать, мы студенты, решили запилить свое и пофиг что никому не нужно
ага-ага
со второй версии на третью лет 10 -15 переходили, и то, наверное еще кто то не перешел, раз вторую еще супортят.
там отличия в нескольких функциях и появлении новых. че там переходить то.
> Не вижу в новости упоминания, чем очередной языкЭтому "новью" уже 11 лет, если что.
> какие цели преследуют авторы
Как обычно:
https://nim-lang.org/faq.html
> Why yet another programming language?
> Nim is one of the very few programmable statically typed languages, and combines the speed and memory efficiency of C, an expressive syntax, memory safety and multiple target languages..
.
> Это не повод для создания нового языка. Достаточно новой редакции, как делаютИз "питоносинтаксиса" там разве что отступы и вроде как кортежи-словари и еще по мелочи, а вот семантика совершенно другая.
Это помимо добавления типизации, AST-макросов, шаблонов, дженериков и прочего. Самое оно для "новой редакции", угу.> этого поделия.
то ли дело мудрые комментарии анона на опеннете …
Смотрел в его сторону, но Crystal лучше подошёл
Тогда уж Elixir, если твоей задачей было использовать самый странный язык программирования.
> Тогда уж Elixir, если твоей задачей было использовать самый странный язык программирования.Если бы задачей было использовать самый странный язык программирования, то я выбрал бы clojure
clojure закрыт
> clojure закрытhttps://github.com/clojure/clojure/
Только никому не рассказывай, это секретный репозиторий
Elixir очень приятный кстати, не надо. И ничего не странный. Не уверен, где его можно применить, но я бы наверное использовал его везде вместо ноды. Во всяком случае server-side.
А вообще вместо того чтобы городить Nim, можно было допилить Cython, чтобы можно было писать целиком на нём без зависимости от Питона.
Cython с его сегфалтами в непредсказуемых местах в принципе не может использоваться в продакшене. Вот почему такой транслятор не сделать на том же расте ума не приложу. Наверно этих самых программистов на расте не существует.
https://m.youtube.com/watch?v=nJDY9ASuiLc
Звучит как годнота. Надо тестить.
Not invented (by) me
Nim это заявка на быстрый Python. Это то чего не хватает многим. Самое прогрессивное в Nim как и в Python это конечно выделение блоков отступами, что резко уменьшает количество синтаксического мусора. Это будущее всех языков. К сожалению в остальном Nim пошел по пути бесконечного добавления "вкусностей". Тот же тупиковый путь что привел C++ в монструозный хаос. Ещё недостаток Nim даже по сравнению с Python (или что-то не заметил) отсутствие "графики из коробки". Предлагается грузить сторонние дополнения отдельной сетевой утилитой "nimble". Что изрядное мозгоклюйство, целая отдельная наука. В целом похоже проект провальный :(
kotlin намного лучше - адекватный ЯП и крутая бесплатная IDE
и мультиплатформеность (java, native, web)
>и крутая бесплатная IDEэто какая?
Android studio, видимо, и intellij
> В дальнейшем полученный C/C++ код компилируется в исполняемый файл при помощи любого доступного компилятораочередное wrap-ерство... тьфу.
> с оглядкой на Pascal, C++, Python и LispИ на логотипе там случайно не химера?
Посмотрел примеры кода - почувствовал легкую тошноту. Но легкую - это блин уже хорошо! а то как глянешь на Rust, так еле до толчка добежать успеваешь..
>> с оглядкой на Pascal, C++, Python и Lisp
> И на логотипе там случайно не химера?
> Посмотрел примеры кода - почувствовал легкую тошноту. Но легкую - это блин
> уже хорошо! а то как глянешь на Rust, так еле до
> толчка добежать успеваешь..Заминусуют. А то и вовсе удалят. Здесь фанатики этой какашки подвизаются вахтерами и удаляют нехрустоугодные комментарии.
Их финансируют те же кто проплачивают вахтерам системд.
Да пусть удаляют если хочется :) Срач по поводу ЯП всегда еще безумнее, чем даже дистросрач.> Здесь фанатики этой какашки подвизаются вахтерами и удаляют нехрустоугодные комментарии.
Это ты зря, с модерацией пока все Ок.
> Да пусть удаляют если хочется :) Срач по поводу ЯП всегда еще
> безумнее, чем даже дистросрач.
>> Здесь фанатики этой какашки подвизаются вахтерами и удаляют нехрустоугодные комментарии.
> Это ты зря, с модерацией пока все Ок.Удаление комментариев предопределяет наше отношение к ним и друг к другу. Я пытался донести эту простую мысль до бабок на здешней вахте, но бабки непробиваемы. :)
> Удаление комментариев предопределяет наше отношение к ним и друг к другу.Рискну предположить, что Ваши комментарии удаляют только потому, что они токсичны, как и любые другие комментарии тут
>> Удаление комментариев предопределяет наше отношение к ним и друг к другу.
> Рискну предположить, что Ваши комментарии удаляют только потому, что они токсичны, как
> и любые другие комментарии тутНе надо ни о чём гадать и путать причину со следствием, человек с Хабра, если уже написано прямым текстом и по-русски.
Да и вообще, какова ценность каментов на Опеннете по прошествии хотя бы недели после публикации? Примерно околонулевая, не? Можно подумать, что если взять и разом потереть ВСЕ каменты недельной давности, то это на что-то повлияет))
Эра новых языков прошла, а жаль. Проект интересный. Но, очевидно, никогда популярным не станет.Даже супер-хайповый Rust такой только в Интернете. Глянул вчера количество вакансий на hh.ru, аж плакать хочется.
Проблема хомяков в том, что они все оценивают по количеству вакансий. Никто не будет переводить весь штаб сотрудников на что-то новое, пока старое работает, но это не значит, что новое можно использовать как вспомогательный инструмент. И да, в какой-то момент все всегда идет по п... и только тогда работодатель в панике начинает искать альтернативы, а все потому что человечество настолько неспособно к адаптации, что я удивлен как мы вообще прошли естественный отбор.
Я таки пояснб мысль про отступы и их ущербность. В сишечках и прочих перлах блоки кода выделяются скобками, и в принципе, если форматирование съехало по какой-то причине, всегда можно вручную либо автоматом отформатировать исходник, опираясь на вложенность скобок.Что делать с питоном или нимом, если пробелы уехали? Не табуляция или там где-то 2, где-то 4, где-то 8, а сами блоки кода порушены?
У меня однажды случилось такое. После чего я зарекся использовать питон в скриптах на пролакшн серверах клиентов. Кто-то что-то где-то потрогает... И адьос.
git юзать не пробовал ?
2019 год, а люди до сих пор ведут борьбу с отступами, у них постоянно что-то где-то "ломается", "едет".Такое ощущение что я живу в параллельной реальности
2019 год, а людей все еще заставляют делать "правильные" отступы.
Если бы писал только внутри себя, то оно как бы ничего. Но вот я налепил скрипт на питоне, отдал его заказчику, типа склеить один процесс с другим.Гит на сервер? Нельзя, безопасность. Скрипт в исходниках, кто-то подлез и привет. Причём это случилось через пару лет, когда никто не помнит, что там где и что там в этом скрипте было.
> безопасностьНе вижу какой-либо проблемы с безопасностью в локальном репозитории.
Перед изменением скрипта зафиксировали его состояние, и все проблемы ушли. Пушить никуда не надо.
Проблема в том, что на сервер ничего нельзя прикрутить. Никаких гитов шмитов. Далее, кто-то может залезть и случайно (или специально) что-то изменить или пофиксить. И, как всегда это происходит, никаких бэкапов или гитов-шмитов...
Извиняюсь спросить... А пописать там выпускают?
Звонок для учителя
> Проблема в том, что на сервер ничего нельзя прикрутить. Никаких гитов шмитов.
> Далее, кто-то может залезть и случайно (или специально) что-то изменить или
> пофиксить. И, как всегда это происходит, никаких бэкапов или гитов-шмитов...У вас есть проблема, вполне очевидное решение, но вы не можете его применить. Жаль вас
Отступы съезжают только от копипасты. Решение не заниматься копипастой. А профит что форматирование всегда одинаковое и никакие форматтеры не нужны в общем случае. А не как в джаваскипт где скобочковый хел и каждый пишет кто во что горазд.
Качество здешней аудитории видно по обсуждению скобочек)))
Качество тебя определяется тем что ты тут пишешь.
не вижу проблемы у отступов вообще. писал скрипт в простом текстовике и даже он отступы сам выставлял при переходе на новую строку. что вы уперлись в отступы? проблема в ниме скорее в том, что он вместе с синтаксисом питона притащил сишный. по итогу получилось, что проще пользоваться сишкой чем нимом. один фиг код транслируется в сишный. вот если бы они умудрились сделать полностью питоновский стиль и при этом компилируемый в бинарь вот это можно было бы похвалить. питон ведь стал популярен из за простоты и меньшего количества кода в сравнении с теми же плюсами и другими. а так что они сделали? смешали питон с сишкой и паскалем? зачем? сделайте аналог того же раста, но с питоновским синтаксисом многие поаплодируют, но ни у кого нет желания писать компилятор способный распознавать тип применяемых переменных, как это сделано в самом питоне.короче желания понятны, но пошли не туда. решили облегчить себе жизнь портированием кода в сишку и потом компилить. это же только усложняет все.
> сделайте аналог того же раста, но с питоновским синтаксисом многие поаплодируют,Не получится, второй раст напишете, только без скобок и с отступами
> но ни у кого нет желания писать компилятор способный распознавать тип применяемых переменных, как это сделано в самом питоне.
Либо я вас не понял, либо все языки со статической типизацией всегда знают типы всех значений на этапе компиляции (ну если мы не рассматриваем каст к object и обратно к более конкретному типу)
в питоне нет необходимости указывать тип переменной, например инт, в то время как в компилируемых языках требуется указание типа присваиваемой переменной еще до основного блока программы. в питон же можно легко ввести новую переменную посреди блока, перичем нет необходимости указания её типа. в этом одна из фишек питона. и создать компилятор, который сам сможет определить в исходнике этот тип и при этом правильно определять границы вложенных блоков оказывается весьма нетривиальной задачей. а учитывая еще и динамическую типизацию, то сами понимаете, что сделать такое очень непросто. это как внести в компилятор целый эвристический анализатор.
Возьмем Котлин.
Вроде, компилируемый язык. Но в нем необязательно указывать тип переменной.
Тем не менее - это язык со статической типизацией. Чудеса, да и только ;)
но весь набор питона кто нибудь смог уместить в компилируемый язык? пока не видел. либо синтаксис аналогичный сишному, либо интерпретируемый язык.
> в питоне нет необходимости указывать тип переменной, например инт, в то время
> как в компилируемых языках требуется указание типа присваиваемой переменной еще до
> основного блока программы.Ну пример из учебника раста:
fn live_neighbor_count(&self, row: u32, column: u32) -> u8 { // В сигнатуре обязательны типы
let mut count = 0;
for delta_row in [self.height - 1, 0, 1].iter().cloned() {
for delta_col in [self.width - 1, 0, 1].iter().cloned() {
if delta_row == 0 && delta_col == 0 {
continue;
}let neighbor_row = (row + delta_row) % self.height;
let neighbor_col = (column + delta_col) % self.width;
let idx = self.get_index(neighbor_row, neighbor_col);
count += self.cells[idx] as u8; // Единственное явное приведение
}
}
count
}Все объявленные переменные (я насчитал 6) имеют свой строгий тип, но он выводится неявно. То, что вы называете "эвристический анализатор" уже не менее 10 лет работает в компилируемых языках.
В дотнете то же самое, только типы выводятся через var. В джаве то же самое. В котлине то то же самое.
Ninja как компилятор пока самое быстрое что я видел
Забыл добавить на ssd. А , илита опять скакает со своими минусами вот так и работают за место реальных разработок бегают тут глазеют.