- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
int main()
{
asm(
mov eax, 2
mov ebx, eax
mul eax
add eax, ebx
mov ecx, 16
mov ebx, 8
lea ebx, ptr [ebx * 16 + ecx + 1]
mov ptr [ebx], eax
add ptr [ebx], eax
);
printf("eax: %d\n", eax.value);
printf("mem:145 = %d\n", *(int*) &a_memory[145]);
return 0;
}
cykablyad 22.08.2017 20:09 # +3
bormand 22.08.2017 22:43 # +1
cykablyad 23.08.2017 07:37 # +1
defecate-plusplus 23.08.2017 08:17 # 0
чому не на соловьиной буст::спирит?
cykablyad 23.08.2017 08:21 # 0
Это чтобы на ГК запостить
roman-kashitsyn 23.08.2017 09:11 # +2
При этом ни один new не нужен. Синдром фантомного C#.
bormand 23.08.2017 20:44 # 0
subaru 23.08.2017 16:52 # 0
cykablyad 23.08.2017 16:55 # 0
И я говорил, что я их не умею
roman-kashitsyn 23.08.2017 17:04 # +5
Так почему бы не устраивать себе небольшой праздник каждый день?
cykablyad 23.08.2017 17:11 # +3
subaru 23.08.2017 17:20 # −2
cykablyad 23.08.2017 17:27 # +3
bormand 24.08.2017 07:12 # +5
Stefan 24.08.2017 09:23 # −1
j123123 28.08.2017 05:48 # +2
Кресты это убогое говно, выросшее из препроцессора для сишки, написанного Страуструпом. Этот язык-препроцессор с каждым годом все сильнее и сильнее обрастал всяким говном и кривыми подпорками, и в 2017 году мы имеем на руках какое-то кривоуебанское говно, претендующее на язык высокого уровня, но при этом с ручным управлением памятью и с все теми же тупыми уязвимостями родом-из-сишки. И это лучший язык? Да ты охуел просто!
j123123 28.08.2017 05:57 # +1
roman-kashitsyn 28.08.2017 11:26 # +3
Мои мысли про классы строк из презентации: велики неизбежны, потому что "строка" это на самом деле 3 разных абстракции (предположим, что все неюникодные кодировки нинужны):
1. Последовательность графических символов. Это то, что мы, люди, понимаем под строкой.
2. Последовательностью юникодных код-поинтов, которые кодируют последовательность графических символов.
3. Последовательность байтов, которая кодирует последовательность код-поинтов.
То, что включено в стандартные библиотеки, обычно живёт на уровне 3 и в лучшем случае немного захватывает уровень 2. Пока у нас не будет удобного апи для работы со всеми уровнями, люди будут писать велики.
j123123 28.08.2017 15:11 # 0
http://vxheaven.org/bhc/bhc15/bhc15-07.txt
Тоесть, смотрите, как ведет себя настоящий, состоявшийся, знающий себе цену программист? А он ведет себя очень просто: плюсы - говно, но и си - говно, кричит он громко, ничуть не смущаясь подходящих к нему слева - одептов плюсов, а справа - почетателей битоебского низкоуровневого язычка типа Си
roman-kashitsyn 28.08.2017 15:27 # +2
Язык сложный? Много знать надо? Да, пожалуй. Делает ли это разработку более эффективной? Да, определённо. В нормальной плюсовой программе о памяти нужно беспокоиться довольно редко.
Ты попробуй на досуге разобраться в современном Хаскеле. Я начал изучать хаски на пару лет раньше, чем плюсы, и до сих пор не знаю, как структурировать крупные проекты (монадические трансформеры я люто бешено ненавижу).
Да одного взляда на жабоскриптовую инфраструктуру достаточно, чтобы возненавидеть всё человечество и уйти писать на крестах, собирая всё мейкфайлами.
j123123 28.08.2017 16:29 # 0
Языки создаются людьми с какими-то целями, и потом эволюционируют(движимые целями каких-то людей, чтобы легче решать какие-то задачи).
>В любом случае, язык позволяет оперировать абстракциями, которые невозможно выразить в той же жабе, к примеру.
Все языки одинаково мощные, если рассматривать их с точки зрения эквивалентности машине Тьюринга. Брейнфака хватит всем.
>Язык сложный? Много знать надо? Да, пожалуй. Делает ли это разработку более эффективной? Да, определённо.
Считаю что лучше не ебаться со сложным языком (имеется ввиду случай, когда сложность языка заложена(прошита) в нем разработчиком), а сделать язык (базу языка) предельно простым, но сделать возможность сколь угодно расширять (расширять не разработчику компилятора, а расширять обычному программисту под конкретную задачу) этот язык, используя метапрограммирование с гомоиконностью. Т.е. нужен язык с произвольной, но не закладываемой (создателями языка) сложностью.
>В нормальной плюсовой программе о памяти нужно беспокоиться довольно редко.
В нормальных плюсовых программах (вроде браузера Chrome, Webkit, Firefox) периодически находят уязвимости, позволяющие выполнить произвольный код . Т.е. язык позволяет совершать такого рода ошибки. На Java наверное тоже можно, но для этого надо специально себе прицелиться в ногу и выстрелить (sun.misc.Unsafe или через JNI сотворить некую хуйню), а плюсы сами в ноги тебе стреляют время от времени.
subaru 28.08.2017 16:52 # 0
Вот поддерживаю. Нахуй вся эта метушня, когда есть шаблонизаторы для веб-страниц? http://govnokod.ru/23288 - красиво и элегантно.
cykablyad 28.08.2017 16:53 # 0
Это скучно, я читал
j123123 28.08.2017 17:10 # +1
Ken Thompson, один из создателей UNIX и Plan 9, раскрывает секрет успеха C++:
Stroustrup campaigned for years and years and years, way beyond any sort of technical contributions he made to the language, to get it adopted and used. And he sort of ran all the standards committees with a whip and a chair. And he said “no” to no one. He put every feature in that language that ever existed. It wasn’t cleanly designed—it was just the union of everything that came along. And I think it suffered drastically from that.
перевод:
Страуструп затеял многолетнюю кампанию, далеко превосходившую всю его техническую работу над языком, ради того, чтобы язык был принят к использованию. Он типа как укротитель с хлыстом, обошёл все комитеты по стандартам и ни единому не сказал «нет». Он все когда-либо предложенные фичи запихнул в язык. В результате получилось нелепое объединение всего подряд. Мне кажется, язык от такого подхода колоссально пострадал.
j123123 28.08.2017 17:11 # +1
The motivation for the design of C was three problems they couldn’t solve in the high-level languages: One of them was interrupt handling. Another was scheduling resources, taking over the machine and scheduling a process that was in the queue. And a third one was allocating memory. And you couldn’t do that from a high-level language. So that was the excuse for C. [...] By 1960, we had a long list of amazing languages: Lisp, APL, Fortran, COBOL, Algol 60. These are higher-level than C. We have seriously regressed, since C developed. C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine. This is one of the reasons compilers are ... basically not taught much anymore in the colleges and universities.
перевод:
У истоков создания C стоят три проблемы, которые не могли быть решены в языках высокого уровня. Во-первых, обработка прерываний. Во-вторых, распределение ресурсов: забрав управление у машины, управлять процессом, который стоит в очереди. В-третьих, выделение памяти. Ничего из этого нельзя было сделать в высокоуровневых языках. Это оправдывает появление C. [...] К 1960 году у нас было большое количество замечательных языков: Lisp, APL, COBOL, Algol 60. Все они были более высокоуровневыми, чем C. С развитием C мы сильно откатились назад. C придушил развитие автоматической оптимизации, автоматического распараллеливания, автоматического перевода высокоуровневых команд на машинный язык. Это одна из причин, по которым компиляторы ... практически исчезли из курсов колледжей и университетов.
roman-kashitsyn 28.08.2017 18:42 # +4
j123123 28.08.2017 19:53 # −1
Вот представьте, какой-то там монах пол жизни задрачивал библии, выучил почти наизусть всякие там ветхие заветы и прочую хуерду, научился там всякую хуйню библейскую трактовать и прочее, легко ли ему будет признаться самому себе, что никакого бога на самом деле нет, что это тупо хуйня все и что он тупо угандошил кучу времени на бесполезную хуйню? Конечно же нелегко. Скорее уж он будет всех атеистов называть неосиляторами грешниками. Так же и плюсовики, прогондонившие дохера времени на вызубривания какой-то тупой херни, будут всем не желающим вникать в эту херню говорить, какие они неосиляторы.
123123123 28.08.2017 21:14 # +1
j123123 28.08.2017 20:01 # 0
Ну и тут тоже можно провести параллели с религией. Например, христиане верят что был какой-то там мужик Иисус которого распяли, который потом воскрес и который умел ходить по воде и воду в вино превращать, и которого непорочно зачал Бог. Этих знаний мне уже достаточно, чтобы сделать вывод что это полная херня, и не тратить время на дальнейшее вникание в весь этот бред
roman-kashitsyn 28.08.2017 21:27 # 0
В отличие от религиозного бреда, вопреки сложившемуся мнению, есть рациональные объяснения сложностей, с которыми сталкиваются разработчики C++.
Внезапно, это не глупость разработчиков языка, а сложностью самой ниши, которую он занимает. Полезно почитать "Дизайн и эволюцию C++", чтобы осознать, почему язык такой, какой он есть, и почему сильно другим он особо быть и не мог.
> они прогондонили дохера времени на полнейшую хуйню
Как-то я пришёл на новый проект, где все (кроме меня) писали на плюсах. Через полгода я знал плюсы лучше большинства коллег и устроился работать C++-программистом в Я.
j123123 28.08.2017 23:35 # 0
> Внезапно, это не глупость разработчиков языка, а сложностью самой ниши, которую он занимает. Полезно почитать "Дизайн и эволюцию C++", чтобы осознать, почему язык такой, какой он есть, и почему сильно другим он особо быть и не мог.
Эхх, в том то и дело, проблема как раз в том, как этот ваш C++ эволюционировал. А эволюционировал он так, чтобы быть совместимым с Си. И вот это и есть основная, дерзчайшая ошибка. Нельзя строить язык высокого уровня, коим хочет быть C++, на основе C.
> Внезапно, это не глупость разработчиков языка, а сложностью самой ниши, которую он занимает.
Да, это я тоже заметил, плюсовики любят оправдывать кривость плюсов тем, что плюсы якобы занимает какую-то особенную нишу, недоступную иным языкам, и что такую нишу нельзя занять некостыльным некривым языком, что для занимания такой ниши нужен обязательно кривой обвешанный костылями монстр, типа C++. Но так ли это на самом деле? Давай по-пунктам.
1. Что за ниша такая, которую занимает C++?
2. В чем сложность этой ниши, какие еще языки претендуют на занятие этой ниши, есть ли среди таких языков что-то менее сложное в использовании, чем C++?
3. Верно ли, что для занятия этой ниши надо обязательно городить некий сложный язык?
Жду ответов по каждому пункту. Там уж можно будет дальше обсуждать
> Как-то я пришёл на новый проект, где все (кроме меня) писали на плюсах. Через полгода я знал плюсы лучше большинства коллег и устроился работать C++-программистом в Я..
И что? Какую мысль ты хочешь мне этим донести? Если кто-то заплатит мне много денег чтоб я изучил плюсы(если будет работа где платят очень много денег за плюсы, и кто-то готов мне даже заплатить за то, чтоб я выучил плюсы и пошел там работать), я эти плюсы вполне могу выучить, но таких предложений мне не поступало. Да и сам я совершенно не горю желанием идти учить плюсы.
Antervis 29.08.2017 06:00 # 0
яп высокого уровня на zero-cost абстракциях
> 2. В чем сложность этой ниши, какие еще языки претендуют на занятие этой ниши, есть ли среди таких языков что-то менее сложное в использовании, чем C++?
претендует только rust
> 3. Верно ли, что для занятия этой ниши надо обязательно городить некий сложный язык?
языков проще в этой нише нет
123123123 29.08.2017 11:45 # 0
Какие-то базворды. Булшит, так сказать.
j123123 23.09.2017 20:20 # 0
Многие абстракции плюсов не являются zero-cost. В частности, если рассматривать плюсовые контейнеры как некий конструктор структур данных, можно найти в таком подходе кучу недостатков. Для плюсовых std::vector нет realloc() например.
Сам механизм обработки исключений, используемый в плюсах, недостаточно эффективен и он не может быть легко заменен своим механизмом обработки исключений(для этого потребуется патчить компилятор и библиотеки времени исполнения). Например, в виндах есть SEH, в линуксах+GCC какая-то своя херня на работающая через DWARF отладочную инфу. См. https://habrahabr.ru/post/208006/
Еще например есть RTTI. В плюсах есть абстракции, которые не являются zero-cost. Так что по этому пункту слив.
>претендует только rust
А как насчет D, Obj-C, Swift?
>языков проще в этой нише нет
Rust по-твоему сложнее? Или он не считается потому что не готов?
FrauSchweinhund 23.09.2017 21:46 # 0
Таки можно сделоть. К счастью, в плюсах можно специализировать шаблоны для POD типов.
j123123 28.08.2017 23:46 # 0
А, видимо ты хочешь сказать, что тебе хватило полгода чтобы стать профи в C++?Вот в это я что-то слабо верю. Плюсы в совершенстве за полгода узнать нельзя вообще никак. Вообще, советую вот глянуть https://youtu.be/dx_6oVFuP8Y
j123123 28.08.2017 23:58 # 0
roman-kashitsyn 29.08.2017 00:29 # 0
Я где-то писал, что я профи в C++? Суть в том, что полгода опыта работы с языком достаточно, чтобы быть продуктивным разработчиком, пишущим идиоматичный код и знать язык лучше большинства программистов, его использующих.
> Плюсы в совершенстве
Для чего знать плюсы в совершенстве? Чтобы хвалиться этим на форуме? Достаточно понять базовые вещи, чтобы быть продуктивным.
Я не могу сказать, что знаю хоть один язык "в совершенстве", даже не рядом.
j123123 29.08.2017 01:29 # 0
Может и достаточно, если ты до этого например знал хаскель, Си, или например жабу, сишарп. Если же нет - у меня есть серьезные сомнения. Я например занимался в свое время тем, что обучал сишке некоторых людей, у которых знания языков программирования вообще не было, или почти не было. И знаешь, на это уходит ОЧЕНЬ МНОГО ВРЕМЕНИ. Если у человека нет вообще никакого бэкграунда в программировании, плюсы за полгода он никак не выучит(уж точно не до уровня "знать язык лучше большинства программистов, его использующих"), разве что если он одаренный гений какой-то
roman-kashitsyn 29.08.2017 13:45 # +2
Это самый унылый холивар из всех, что я видел. Джава-программист (в конце признался, что он менеджер на самом деле), который практически не знает c++, пугает других джава-программистов сборкой gcc 4.4 ради openmp, и утверждает что шаблоны не такие красивые, как привычные ООП-решения (лолчто?!). Память они не смогли сэкономить, я прям удивлён. Видел я, как джависты на C++ пишут.
Если уж хочется понять, почему C++ катится в пропасть, лучше смотреть доклады авторов бустовых библиотек на конференциях.
subaru 29.08.2017 13:51 # +1
Как раз на днях увидел в бустовой рассылке критику предлагаемой библиотеки. Аж прослезился.
"Also, Boost seems to lean towards libraries that use some cutting edge features of C++ and make clever use of its unique capabilities (templates), so that they are also interesting from the computer scientist point of view. Also that I don't see here."
SemaReal 25.09.2017 14:27 # 0
guest8 03.02.2020 11:08 # −999
gostinho 03.02.2020 11:10 # 0
guest8 03.02.2020 15:55 # −999
inkanus_gray 03.02.2020 16:52 # 0
j123123 03.02.2020 02:38 # +1
Они не пишут на Хаскеле и Эрланге, не переписывают на PHP. LISP машины в этом обществе строго запрещены и считаеюся наиболее «токсичным» предметом функционального мира. Если она появится дома, это будет означать автоматическое исключение детей из школы, а с обладателем устройства просто не будут общаться. В особо строгих общинах также идет война против питона и джаваскрипта. Но здесь все сложнее: эти «блага цивилизации» многим необходимы для работы. Те, кто не могут без них обойтись, часто устанавливают «кошерный интернет», в котором заблокированы все сайты с нескромными языками программирования.
Изучение Крестостандарта — главная ценность в мире крестоблядей. Твой вес в этом обществе определяется не размером счета в банке, а тем, насколько ты продвинут в знании Крестоговна. Например, юноша, все время посвящающий учебе и живущий на очень скромную стипендию крестобляди, — более завидный жених, чем тот, кто работает и, соответственно, лучше обеспечен. Довольно распространенная ситуация, когда в семье зарабатывает жена, а муж все время учится в коллеле (учебном заведении для женатых мужчин).
0_577fob 28.08.2017 22:55 # 0
Но я боюсь Тьюринга.
d_fomenok 04.11.2017 20:42 # 0
ru.wikipedia.org/wiki/Кверулянтство
3.14159265 28.01.2020 21:14 # 0
Кен Томпсон абсолютно прав.
Только запихивание всего в С++ общепринятом считать багом, а на самом деле это трансгрессивная фича.
j123123 28.01.2020 21:38 # +1
Это не говно, а хлеб! https://youtu.be/j0NvZrkDm0c
3.14159265 28.01.2020 22:04 # +1
Все языки только занимаются тем что ограничивают программиста.
И только в крестах можно писать как захочешь:
* можно структурировать код в заедушном жаба ООП-стиле, а сами методы писать лапшёй из goto как в старом бейсике
* можно писать всё на монадах и функциях как в ФП, но с intrinsicиками или ассемблерными вставками
* можно сделать себе препроцессором паскаль и упорото перегрузить операторы
* можно упороться template, и одновременно писать на сишке с указателями
Можно обмазаться говном, а можно подрочить.
Это же не питоний ГУЛАГ: с его единственным способом сделать что-либо.
«There's only one way to do it» это когда все в одинаковой форме маршируют по плацу.
j123123 28.01.2020 22:59 # 0
В C++ нет GC, а без GC в функциональщине особо не развернешься
3.14159265 29.01.2020 02:09 # 0
В С++ есть RAII и умные указатели.
А gc — по сути очередная придумка чтобы ограничить программиста.
Ну то пол-беды. Языки с gc до сих пор не могут приблизиться по скорости к плюсам.
HoBorogHuu_nemyx 29.01.2020 02:36 # +1
j123123 28.01.2020 23:01 # 0
3.14159265 29.01.2020 02:10 # 0
Опять ГОМОИКОНЫ?
Нет, ну а серьёзно в каком компилируемом алголо- (сишко-) подобном языке такое есть?
j123123 28.01.2020 23:12 # 0
HoBorogHuu_nemyx 28.01.2020 23:23 # 0
Desktop 28.01.2020 23:36 # 0
HoBorogHuu_nemyx 28.01.2020 23:41 # 0
Мне кажется, под dataflow заточены только декларативные языки.
j123123 28.01.2020 23:41 # 0
HoBorogHuu_nemyx 28.01.2020 23:48 # 0
j123123 28.01.2020 23:54 # 0
HoBorogHuu_nemyx 29.01.2020 00:01 # +2
Desktop 28.01.2020 23:52 # 0
j123123 28.01.2020 23:56 # 0
А они и не должны. Они и не заточены. Просто 3.14159265 утверждает, что якобы кресты никого ни в чем не ограничивают - я утверждаю что это хуйня.
> Какие вообще языки общего назначения под неё заточены?
Что значит "общего назначения"? Я думаю что никаких "языков общего назначения" нет
Desktop 29.01.2020 00:06 # 0
j123123 29.01.2020 00:15 # 0
В общем хуйня какая-то.
gost 29.01.2020 00:17 # +1
j123123 29.01.2020 00:21 # 0
gost 29.01.2020 00:23 # +1
j123123 29.01.2020 00:24 # 0
gost 29.01.2020 00:29 # +1
j123123 29.01.2020 00:32 # +2
j123123 29.01.2020 00:29 # 0
gost 29.01.2020 00:34 # +2
j123123 29.01.2020 00:36 # 0
Вообще-то он спроектирован как раз с привязкой к специфичной области применения, чтобы сделать "кроссплатформенный ассемблер" чтоб можно было не переписывать по 100500 раз систему Unix с одного ассемблера на другой
> У истоков создания C стоят три проблемы, которые не могли быть решены в языках высокого уровня. Во-первых, обработка прерываний. Во-вторых, распределение ресурсов: забрав управление у машины, управлять процессом, который стоит в очереди. В-третьих, выделение памяти. Ничего из этого нельзя было сделать в высокоуровневых языках.
gost 29.01.2020 00:47 # +1
>>> A domain is a field of study that defines a set of common requirements, terminology, and functionality for any software program constructed to solve a problem in the area of computer programming, known as domain engineering.
https://en.wikipedia.org/wiki/Domain_(software_engineering)
Ну и с «спроектирован» это уже я неправильно выразился:
>>> A general-purpose language is a computer language that is broadly applicable across application domains, and lacks specialized features for a particular domain. This is in contrast to a domain-specific language (DSL), which is specialized to a particular application domain. The line is not always sharp, as a language may have specialized features for a particular domain but be applicable more broadly, or conversely may in principle be capable of broad application but in practice used primarily for a specific domain.
То есть общее/не общее назначение определяется реальными примерами использования языка.
j123123 29.01.2020 00:44 # 0
Очень даже предназначены - указателями можно передать указатель функции как аргумент в другую функцию, и потом эту функцию по указателю вызвать - это вполне конкретная задача. Которая кстати в dataflow не может быть сделана т.к. никаких адресов у функций там нет.
gost 29.01.2020 00:55 # +1
И да, ключевое слово — «можно». При помощи указателей можно сделать очень много различных вещей — хоть функцию передать, хоть медиану массива посчитать, хоть ссылки эмулировать. И именно поэтому указатели не являются специфичным для конкретной области применения инструментом.
А вот, например, большинство «HTML-тегов» — являются, поскольку спроектированы, могут использоваться и используются на практике только для одной задачи — форматирования гипертекстового документа (всяческие девиации, вроде калькуляторов на голом «HTML», принимаются за статистическую погрешность).
j123123 29.01.2020 01:20 # 0
gost 29.01.2020 03:05 # 0
> Так вот, на основании чего Си является языком общего назначения, а Verilog не общего?
На основании того, что на «Verilog» нельзя с разумными затратами решить задачу Y, например, показать пользователю видосу.
Если уж вдаваться в формализм, то на основании того, что мощность множества задач, которые на практике решаются языком «Verilog», существенно меньше того же множества у языка «C».
j123123 29.01.2020 01:45 # +1
А если взять например Emacs Lisp:
https://lists.gnu.org/archive/html/help-gnu-emacs/2018-10/msg00354.html
> Thank you for this remark. I totally agree with you. elisp should be considered
a domain specific language and not be compared to general purpose languages in
general.
А если по аналогии с NodeJS сделают какой-нибудь NodeEmacsLisp, он тогда превратится в general-purpose?
gost 29.01.2020 03:10 # 0
> А если по аналогии с NodeJS сделают какой-нибудь NodeEmacsLisp, он тогда превратится в general-purpose?
Разумеется, если при помощи него можно будет решать достаточно широкий спектр задач.
j123123 29.01.2020 00:19 # +1
> Предметно-ориентированный язык (англ. domain-specific language, DSL — «язык, специфический для предметной области») — язык программирования[источник не указан 1341 день], специализированный для конкретной области применения (в противоположность языку общего назначения[en],
> Ведущие исследователи языково-ориентированного программирования (Мартин Уорд, Пол Хьюдак[en], Валид Таха и другие) приводят следующие примеры предметно-специфичных языков в качестве классических[4][7][8]:
> ML и Haskell для задач, сформулированных в терминах функций (Haskell временами определяется как DSL для денотационной семантики[en]).
Хуйня какая-то. Википедия сама себе противоречит
gost 29.01.2020 00:22 # 0
j123123 29.01.2020 00:26 # 0
gost 29.01.2020 00:29 # 0
HoBorogHuu_nemyx 28.01.2020 22:05 # 0
bootcamp_dropout 29.01.2020 12:04 # 0
А главное, новые фичи могут пролезать в язык сами по себе https://habr.com/ru/post/472780/
3.14159265 29.01.2020 15:49 # 0
Это даже не то чтобы безумие, это просто чистое разрушение, chaotic evil.
И этим С++ прекрасен.
bootcamp_dropout 29.01.2020 16:12 # 0
vsl, 2007
3.14159265 29.01.2020 17:12 # 0
https://govnokod.ru/16101#comment234823
А тот самый эпик-тред на sql.ru более недоступен. Пичялька.
HoBorogHuu_nemyx 29.01.2020 18:05 # 0
Зачем эпик-треды с sql.ru удаляются?
bootcamp_dropout 29.01.2020 19:58 # 0
А тред жаль, да
3.14159265 29.01.2020 20:02 # +1
На самом деле копипаста неактуальна. Она хороша, как универсальный вброс. Не более.
>C++ — довольно таки примитивное
У меня огромные сомнения насчёт примитивности С++.
Всё остальное вброс для неосиляторов.
Рекомендую всё же почитать то обсуждение.
bormand 08.06.2014 00:05 # +3
> Главное, чтоб C и C++ не были единственными доступными программисту инструментами
Имхо, в эту фразу можно подставить абсолютно любые языки.
3.14159265 08.06.2014 00:42 # +1
>в эту фразу можно подставить абсолютно любые языки.
Согласен. Равно как заменить C++ на PHP в первой части.
bootcamp_dropout 29.01.2020 20:12 # 0
В отрыве от контекста это вброс, да и в контексте тоже. Но от этого шитпостить их не менее весело, цитируя тебя же:
j123123 02.02.2020 08:14 # 0
Просто искать надо уметь: https://web.archive.org/web/20171028025247/http://www.sql.ru/forum/466654/s
Ну и листать страницу форума можно
https://web.archive.org/web/20171028012743/http://www.sql.ru/forum/466654-2/s
https://web.archive.org/web/20171028012743/http://www.sql.ru/forum/466654-3/s
и так далее
N_BCE_3ACMERJINCb 02.02.2020 23:18 # 0
questinho 02.02.2020 23:32 # 0
3.14159265 29.01.2020 20:03 # +2
Человек, который хорошо в нем ориентируется — это хорошее зубрилко, а не хороший программист.
Умение героически преодолевать трудности, которые создает твой собственный инструмент, вместо того, чтобы решать непосредственно прикладную задачу, в современном мире ценится разве что только среди прыщавых сосок.
________________________________________________________________________________________________________________________________________________________________________________________________________________
ECMAScript — довольно таки примитивное, но монстровое поделие, полное исторически сложившихся нелепых нагромождений.
Человек, который хорошо в нем ориентируется — это хорошее зубрилко, а не хороший программист.
Умение героически преодолевать трудности, которые создает твой собственный инструмент, вместо того, чтобы решать непосредственно прикладную задачу, в современном мире ценится разве что только среди прыщавых сосок.
________________________________________________________________________________________________________________________________________________________________________________________________________________
Java — довольно таки примитивное, но монстровое поделие, полное исторически сложившихся нелепых нагромождений.
Человек, который хорошо в нем ориентируется — это хорошее зубрилко, а не хороший программист.
Умение героически преодолевать трудности, которые создает твой собственный инструмент, вместо того, чтобы решать непосредственно прикладную задачу, в современном мире ценится разве что только среди прыщавых сосок.
HoBorogHuu_nemyx 29.01.2020 20:06 # 0
j123123 02.02.2020 08:19 # +3
- Рыночные механизмы ценообразования никоим образом не связаны со сложностью и "крутизной" технологии (само понятие "крутизна" применимо только в детском саду, кстати). Цена услуги складывается из собственно стоимости результата, из доступности ресурсов на рынке труда и из степени взаимозаменяемости ресурсов.
- C++ не является инструментом элиты, и владение C++ никак не является поводом причислить человека автоматически к разряду высокопроизводительных, эффективных, универсальных профессионалов. Скорее даже наоборот - C++ - атрибут посредственности. C++ - дешевка и ширпотреб.
- Элита, малочисленная и высокооплачиваемая, пользуется совсем иным набором инструментов. Более того, элита на инструментах особо и не заморачивается, для них, в отличии от узкопрофильных тупеньких ремесленников, инструмент сугубо вторичен.
- И последнее: нормальный человек от придурка отличается рациональностью. Ты же ни капли рациональности не продемонстрировал - все твои взвяки логически бессвязны, позиции своей ты изложить так и не смог, а источником своих утверждений выбираешь перевранные и неправильно тобой понятые заявы достаточно мутных личностей, чем-то для тебя авторитетных. Сама по себе аппеляция к авторитету вместо голой логики, кстати, является достаточным условием для причисления к категории дебилов (в ГСМной их разновидности).
HoBorogHuu_nemyx 02.02.2020 08:39 # 0
LLapcKuu_nemyx 02.02.2020 20:49 # 0
j123123 02.02.2020 22:36 # −1
> И главная глупость крестоблядей даже не в самих идеях языка (там и хорошего много), а в совершенно беззастенчивой безапелляционности, самовлюбленности и уверенности в собственном полнейшем моральном превосходстве крестоблядей.
>
> В любом собеседнике способность конструктивно поддерживать беседу, слышать аргументы и не просто кричать о проблеме, а еще и предлагать реалистичные решения. Жаль, что у крестоблядей это качество встречается крайне редко.
>
> Еще крестобляди назначают всех неосиляторами, у кого другое мнение, а так же должны репостить все душещипательные призывы. И еще крестобляди постоянно самосовершенствуют себя программированием, изучением крестостандарта и выходом на правильные конференции по крестоговну, чтоб все видели, что они на самом деле такие носители крестоговна.
>
> Я никогда не перестану общаться ни с одним крестоблядком из-за его позиции. Но это не взаимно :-)
N_BCE_3ACMERJINCb 02.02.2020 23:02 # 0
j123123 03.02.2020 00:17 # 0
j123123 03.02.2020 00:35 # +1
C++ — довольно таки примитивное, но монстровое поделие, полное исторически сложившихся нелепых нагромождений. Человек, который хорошо в нем ориентируется — это хорошее зубрилко, а не хороший программист. Умение героически преодолевать трудности, которые создает твой собственный инструмент, вместо того, чтобы решать непосредственно прикладную задачу, в современном мире ценится разве что только среди прыщавых сосок.
Работодатель же это сомнительное умение не ценит, и совершенно справедливо. Нормальный человек просто не станет глупо тратиться на идиота с таким "профессиональным" уровнем программирования. Кроме того, профессионалам не нужны люди с изощренным умением преодолевать трудности. Им не нужна профессиональная тупость. Профессиональные идиоты совершенно не нужны профессионалам — им нужен или простой тупой идиот, или абсолютно тупой, вообще безмозглое существо, которое и работает-то только для того, чтобы можно было при желании купить себе IBM-24, причем никаких дополнительных усилий по умственному развитию тут не требуется. Понимаете принцип дезодаптации, господа волшебники?
j123123 03.02.2020 00:41 # +1
Это как если б Гитлер узнал, что у него в роду были евреи
N_BCE_3ACMERJINCb 03.02.2020 00:53 # 0
Г. Гёринг, 1935
Но в итоге не прокатило и пришлось провернуть другую схему
j123123 03.02.2020 01:07 # 0
MEJlOMAH 03.02.2020 01:20 # 0
N_BCE_3ACMERJINCb 03.02.2020 02:11 # 0
Бойцовское Время
Recommended for you
Невероятное кино про пропавший отряд - Туман @ Военные фильмы 2019 новинки
Бойцовское Время
Recommended for you
Невероятное кино про опасную миссию - Линкор смерти @ Военные фильмы 2020 новинки
Бойцовское Время
Recommended for you
3.14159265 03.02.2020 15:30 # 0
Именно потому я против «C#»
Desktop 03.02.2020 01:24 # 0
MEJlOMAH 03.02.2020 01:27 # 0
j123123 03.02.2020 01:58 # 0
guest8 03.02.2020 04:05 # −999
3.14159265 03.02.2020 15:26 # +1
Но, во-первых, ты пообщался с копипастой. Причём, стоит отдать должное, автор любезно предоставил её исходник.
А, во-вторых, тёма происходит из знатного рода Толстых. Из чего становится ясно, что этот кусок говна всплыл не сам по себе.
AnalBoy 03.02.2020 15:29 # 0
N_BCE_3ACMERJINCb 03.02.2020 21:21 # 0
Antervis 28.08.2017 10:30 # 0
> все теми же тупыми уязвимостями родом-из-сишки
?
j123123 28.08.2017 15:06 # +1
http://govnokod.ru/23254#comment389136
http://govnokod.ru/20947#comment348009
Си обладает МЕНЬШИМ ФУНКЦИОНАЛОМ и МЕНЬШИМ КОЛИЧЕСТВОМ ФИЧ, чем плюсы (никто в здравом уме с этим спорить не будет, плюсы это практически надмножество над Си, они изначально и задумывались как некая хуйня над Си, которая бы добавляла туда новой хуйни) но блядь, в эти плюсы добавили столько тупой ебанутой хуйни, что лучше вообще послать нахуй это говно. Язык очень сильно переусложнили, и вот например чтобы суметь понять любой код на плюсах (в т.ч. какое-то древнее метаговно на шаблонах из 1998 года, в т.ч. какую-то современную хуйню из последних стандартов) всю эту парашу и все эти разные плюсовые говноподходы надо держать в голове. Вообще, достаточно сравнить объем текста драфта последнего стандарта C++ и C и количество текста во всяких учебниках по Си и С++
А Си это достаточно тупая и примитивная хуйня, и понять код на Си (по сравнению с кодом на С++) ничего не стоит, ввиду простоты самого языка. И чтоб научиться писать на Си на достаточном уровне, не надо читать всякую хуйню типа "Продвинутая ебля с шаблонами в плюсах и метапрограммирование для профессионалов ебанатов" или "А что за новую хуйню подобавляли в С++17?" и прочую поеботу, написанную авторами, паразитирующими (зарабатывающими деньги) на излишней переусложненности C++. На Си можно прочитать K&R и возможно еще немного хуйни, и в бой
Antervis 28.08.2017 16:04 # +1
j123123 28.08.2017 16:32 # 0
j123123 28.08.2017 16:34 # 0
>>Добавлю. С-плюха-плюха - мощнейший ЯП.
>"Мощнейшим" он кажется, если не знать ничего другого.
>На самом деле он адски ограниченный. Хуже всего дела обстоят с самым потенциально мощным механизмом языка - с метапрограммированием. Язык темплейтов в C++, хоть и является Тьюринг-полным, на самом деле на практике бесполезен. Он не совпадает с самим C++, из этого языка нельзя пользоваться возможностями C++, и, соответственно, потенциал роста сложности абстракций оказывается ограниченным.
>Далее - семантика системы типов языка излишне сложная, при этом не полная и не ортогональная. В результате - рассадник тупейших ошибок.
>Потенциал к оптимизации у программ на C++ весьма низкий, опять же за счет недостаточно развитой системы типов и отсутствия механизмов формулировки высокоуровневых абстракций. Языки более высокого уровня можно гораздо серьезнее оптимизировать, к ним можно применять интересные формальные методики - автоматически распараллеливать алгоритмы, выводить определенные свойства реализации, и т.п.
>Как язык низкого уровня, как кроссплатформный ассемблер, он тоже слабее своего предшественника, чистого Си: спасибо за это непредсказуемому и нестандартизованному name mangling.
>Ну а уж за дурацкий синтаксис C++ вообще Страусу отдельное огромное спасибо. Мало других таких языков, для которых парсер написать - это подвиг, достойный прижизненного конного памятника в полный рост.
Antervis 28.08.2017 20:45 # 0
С++ идеально подходит на роль яп общего назначения. Там, где производительность не важна, скорость разработки на порядки превосходит таковую на си. А там, где важна, можно оптимизировать код ничуть не хуже. И уж точно лучше чем учить по одному яп на каждую задачу
123123123 28.08.2017 21:12 # +3
bormand 29.08.2017 04:50 # +1
nemyx 08.07.2020 09:49 # 0
j123123 28.08.2017 23:04 # 0
Но нахрена, нахрена мне его выучивать? Мне не нравится это язык. Думаешь, выучив его, я бы его вдруг внезапно полюбил бы? Бред. Я общался с людьми, которые эти ваши говноплюсы отлично знают, и они разделяют мою точку зрения относительно того, что плюсы - говно.
Плюсы мне будет иметь смысл выучивать только если мне за это будут например платить много бабла, но пока что никто не торопится мне платить за то, чтобы я учил плюсы. А зарабатывать и так могу, моих знаний других ЯП мне для этого вполне достаточно.
Antervis 29.08.2017 05:16 # 0
j123123 29.08.2017 05:52 # 0
Нет. C++ - небезопасный язык. В современных браузерах, написанных на плюсах, регулярно находят уязвимости, позволяющие выполнить произвольный код на стороне пользователя, если подсунуть им специально оформленную HTML страницу. Такой язык никак нельзя назвать идеальным ЯП общего назначения.
Как язык общего назначения, плюсы говно из-за убогих механизмов метапрограммирования, но я это все уже не раз писал, и не вижу смысла повторяться. Можно еще обосрать ООП вообще и плюсовое ООП в частности, но мне это даже как-то лень сейчас. Может как-нибудь напишу статью на эту тему.
Antervis 29.08.2017 06:02 # 0
это происходит потому, что браузеры обязаны парсить и выполнять код на всяких жабаскриптах и html. Еще вопросы?
j123123 29.08.2017 06:42 # +1
Если парсить HTML и JS код из какой-нибудь жабы, там такой хуйни не будет. Если например на безопасном языке запилить какой-нибудь транслятор из JS кода в байткод Java, то тоже не будет никакой хуйни (разве что если будет дыра в самой JVM, позволяющая жабовым байткодом вылезти из сандбокса и натворить хуйни).
Посмотри например на эту хуйню - https://blog.xyz.is/2016/webkit-360.html - баг такой, что при реаллокации можно поднасрать чужую память, изменив метаданные у хуйни типа Uint32Array, заставив это говно считать что там на самом деле этот Uint32Array содержит больше элементов, а потом из этого поднасрать например в стек, сделать ROP цепочку и выполнить произвольный код
As such, if we now look at arrays we will find a few JSArray objects that are extended beyond their real boundary and have their length set to 0x80000000.
Вот такой хуйни вообще быть не должно в идеальном языке общего назначения. Он не должен такой хуйни вообще допускать.
Если ты думаешь, что из программ, написанных на плюсах, уязвимости только в браузерах бывают, я тебя жестоко разочарую. Подобные дыры в любом софте на плюсах встречаются. В каком-нибудь майкрософт ворде хватает дыр, в экселе, да и в акробат ридере, вообще все вокруг дырявое нахер, и это из-за небезопасного говноязычка
Antervis 29.08.2017 07:14 # 0
офис начинали писать на асме, потом на си, и только потом перевели на плюсы
j123123 29.08.2017 08:41 # +1
Это еще почему не напишешь? Очень даже напишешь, надо только сделать эффективный и хорошо оптимизируемый ЯП высокого уровня, с bounds-checking elimination для всех случаев, где можно доказать ненужность проверок выхода за границы, с крутым оптимизатором, с компилтайм-расстановкой free() через логику Хоара (чтобы автоматом на этапе компиляции придумывалось, куда надо вставить free() с доказанной корректностью всех этих расстановок, используя формальные методы, логику Хоара) и прочими фичами, которых пока нет ни в одном высокоуровневом языке.
А так вообще, виртуальные машины для ЯП высокого уровня вполне можно писать на том же самом ЯП. Например, есть PyPy.
CHayT 29.08.2017 10:34 # +3
Antervis 29.08.2017 12:16 # +1
roman-kashitsyn 29.08.2017 12:33 # +3
ATS (http://www.ats-lang.org/) отчасти подходит под описание, но меня ломает его изучать.
123123123 29.08.2017 12:41 # 0
vistefan 30.08.2017 14:18 # +1
А страуструп отчим
bormand 29.08.2017 17:50 # +1
А потом, емнип, все браузеры вообще её выпилили к хуям, вместе с остальными плагинами. А там где осталось - или подпись или явный запрос каждый раз...
Вот так вот высокоуровневый и безопасный язык навсегда потерял одну из своих ниш.
Причём в том самом эксплойте не было никакого некорректного байткода, переполнений буферов и т.п. Просто из одной функции позвали то, что звать нельзя. Не хватило жабке выразительной силы, чтобы это "нельзя" в коде проверять.
j123123 29.08.2017 18:30 # −1
Тогда точно так же надо выпилить и JS движки из браузеров, ведь в них тоже хватает дыр.
bormand 29.08.2017 18:34 # +1
В js, емнип, не было дыр, которые со 100% вероятностью на всех поддерживаемых платформах дают полный доступ к системе на правах текущего юзера (не вылезая, при этом, из уютной jvm).
inkanus-gray 29.08.2017 19:07 # 0
bormand 29.08.2017 19:22 # +2
Там, насколько я помню, проблема в самой архитектуре жабьего сендбокса - авторы хотели и рыбку съесть (чтобы у jvm был доступ к системе) и на хуй не сесть (чтобы у недоверенного кода, который крутится на той же самой jvm, его всё-таки не было).
В итоге сели, т.к. проконтролировать тысячи функций с неаккуратными doPrivileged() и метушнёй рефлексией оказалось нереально.
j123123 30.08.2017 17:10 # 0
Были, были
bormand 29.08.2017 18:53 # 0
Так что проблема она в отношении кодеров к безопасности, а не в языках.
defecate-plusplus 30.08.2017 11:34 # +2
остались ишак и firefox ESR 32 бита (в x64 ESR дропнули буквально пару версий назад), и это реально теперь проблема работать с интернет-банком, где требуется подсовывать токен для подписывания документов
в более других местах уже забили на жабу, заставляют ставить npapi плагин или вообще приблуду, которая открывает сервер localhost:14888, чтобы в него срать из браузера
вот теперь-то точно безопасно
inkanus-gray 30.08.2017 11:40 # 0
inkanus-gray 30.08.2017 11:50 # 0
Так вроде жаба во всех браузерах (кроме IE) подключалась через NPAPI-плагин.
Кстати:
• Google Chrome 45, in September 2015, permanently dropped all NPAPI support from all platforms.
• Firefox release 52.0 in March 2017 removed all support for NPAPI except for Flash.
• Opera после 12-й версии не выпускается.
Остаются Palemoon, Seamonkey и подобные форки. Только надолго ли?
Но самое страшное это:
• Oracle Corporation has announced plans to deprecate the web browser plugin of Java Runtime Environment, starting with JDK 9.
• Adobe will stop supporting Flash at the end of 2020.
Жаба и Флэш всё?
defecate-plusplus 30.08.2017 12:01 # +1
Ну и инфотэкс (разработчик vipnet) меня принудил к local signature service (та самая упоминавшаяся ебалайка) - с ним веб-страница взаимодействует через обмен с локалхостом. В отношении криптопро плагина я не увидел следов, что и они какую-то шнягу на локалхосте открывают, но не то чтобы я очень внимательно искал.
N_BCE_3ACMERJINCb 02.02.2020 23:04 # 0
123123123 28.08.2017 11:42 # −1
inkanus-gray 29.08.2017 00:14 # +1
1. Objective-C.
2. D.
3. Object Pascal (Free Pascal, Delphi XE).
4. Язык Ада.
5. Rust.
6. Go.
7. Ocaml, F#.
8. Haxe.
9. Eiffel.
Кто сможет упорядочить эти языки по говнистости (с обоснованием)?
subaru 29.08.2017 00:22 # 0
123123123 30.08.2017 12:08 # 0
Мне вот вдруг показалось.
inkanus-gray 30.08.2017 12:12 # 0
dxd 31.08.2017 17:20 # +1
d_fomenok 30.08.2017 16:49 # +2
2. Go. Не нужен, потому что похож на кресты.
3. Objective-C. Не нужен, потому что Apple.
4. D. Не нужен, потому что он никому не нужен.
5. Eiffel. Не нужен, потому что он никому не нужен.
6. Ocaml. Не нужен, потому что он никому не нужен.
7. Haxe. Не нужен, потому что он никому не нужен.
8. Язык Ада. Не нужен, потому что ухудшенный Pascal
9. Object Pascal (Free Pascal, Delphi XE). Каеф, ибо Никлаус Вирт.
10. F#. Каеф, функциональщина под .NET
CHayT 23.08.2017 18:41 # +3
inkanus-gray 23.08.2017 19:13 # +3
roman-kashitsyn 23.08.2017 20:03 # +3
bormand 22.08.2017 22:44 # 0
d_fomenok 25.08.2017 13:09 # −1
zhigolo 29.01.2020 22:42 # 0