Справедливости ради замечу, что: Код (Text): wget http://wasm.in/ у меня не заработал (завис). Полноценная ли WM?
Да у скриптописателей все так работает. Они почему-то решили, что результат их работы - это сорец и больше дрочат на то, где скобочки и звездочки ставить
Three big lies in software development: http://cellperformance.beyond3d.com/articles/2008/03/three-big-lies.html
Дык не важно скрип не скрипт. Любая программа должна принимать на вход данные и выдавать результат. А значит она взаимодействует с открытым миром. А это означает, что программа не имеет защиты, так как внешний мир мы не контролируем и защититься от фальшивых данных не можем. Все эти RAII и так далее направлены на борьбу с внутренними врагами. Высокоуровеневые языки в первую очередь созданы для программирования программистов, а не программ.
Да, как правило VM пишут на С++, а это большая дыра в безопасности. Например тот же Google Chrome изобилует C++ конструкциями ООП, и полностью состоит из костылей и багов, самый дырявый браузер обошедший даже IE по итогам года. Я дико ржу с их правок в коде сравнивая diff'ы пятилетней давности. В вопросах безопасности интереснее рассматривать архитектурные решения, такие как Astra Linux, там действительно хорошая модель безопасности. https://xakep.ru/2015/09/15/astra-linux-se/ Альтернативная ссылка https://forum.exploit.in/index.php?showtopic=23869&view=findpost&p=593768 )))
ассемблер морально устарел, для несостоявшихся людей в высокоуровневых ЯП, вм-криптографию на плюсах пилят
я кстати до сих пор не могу понять, как плюсы могли обойти ту же Аду... ведь создатели Ады решили проблему с буффер оверфлоу в своем языке еще в годах 70-ых, в стандарте Ады 2012ого года появилось куча улучшений, связанных с парралелизмом... но все равно все свой гaвнокод пилят на пресловутых плюсах... одна Мазилла одумалась и запилила Раст, теперь потихоньку перепиливает свой браузер с плюсов на Раст...
У плюсов тотальнейшим просчетом является схема объявления класса с невозможностью скрыть внутреннюю реализацию. Как им только пришло в голову хранить private секцию класса рядом с public секцией? Это же вся суть, здесь должно быть абстрагирование. Это одна из причин почему практически все решения на С++ выглядят крайне ужасно, даже если сама реализация выполнена корректно. При этом в обычном процедурном подходе на Си элементарно разделяется public и private код без каких-либо заморочек, особенно удобно с использованием namespace'ов из C++. Возможно написание стандарта C++ как-то выпало на период пиковой активности наркотических веществ в США, тут можно только догадываться.
http://www.gotw.ca/gotw/028.htm https://habrahabr.ru/post/118010/ https://habrahabr.ru/post/111602/ https://msdn.microsoft.com/ru-ru/library/hh438477.aspx Только в мире C++ кодеры занимаются решением проблемы самого языка, а не поставленных задач.
superakira, Да все нормально. Везде есть свои плюсы и минусы. Мои претензии к Си++ объективны и касаются фундаментальных вещей, которые давно решены во многих языках. Я люблю Си++ и поэтому не безразличен к этому динозавру. JS это не веб. Посмотри на продукты Mozilla, их GUI и логика написаны на JS через XPCOM Glue привязываясь к Native на C++. Шедеврально. У меня есть реализация GUI на JS под MSHTML, мне тогда не дали дописать до конца, но оно работает. В те времена люди даже не знали, что Skype на Webkit построен. Сегодня на JS реализовано огромное количество десктопных приложений и все морды антивирусов. Рендерить HTML и обрабатывать интерактив на JS в разы проще и эффективнее, огромнейшая база знаний из веб расширила свое влияние на обычные приложения.
А в линуксах стало модным клепать морды на питоне. Куда не глянешь - везде Python + Qt, при этом критический к производительности код по-прежнему пишется либо на C, либо на C++.
проблема плюсов и сишечки как минимум в том, что они позволяют иметь undefined и unspecified поведение... со всяким архаичным бредом типа инклудов и интерпретатора хаскелла в метапрограммировании еще как то можно смериться... ярые адепты сишечки или плюсов, которые с пеной у рта её защищают на просторах интернета, не участвовали в больших проектах и никогда не кодили продукты для многоядерных систем... искать в чужом говнокоде на плюсах баг, который приводит к undefined поведению, или же фиксить race condition - это знаете ли еще то удовольствие...
Rel, но вот не надо Си и Си++ под одну гребёнку гнать. Метакод Си++ ужасен. Код на Си же зачастую прост и понятен как дважды два.
winnt_Ma$hka_x64, > ассемблер морально устарел, для несостоявшихся людей в высокоуровневых ЯП Это язык архитектуры, раз архитектура не устарела, то и её язык тоже. Вы путаете понятия - популярно/оплачиваемо. Си это макроязык, скрипт выполняет элементарную трансляцию, те кто на нём пишет должны понимать на уровне инструкций конечный выхлоп. Си является архитектурным языком. По мойму обсуждение актуальности не имеет смысла, это совершенно разные области. Порог вхождения в системный коденг крайне высок, при этом обычная реализация высокоуровневых задач доступна даже детям - яп постоянно улучшаются, точнее делаются проще. Чтобы собрать примитивное рабочее апп не нужно ничего, кроме как кликать мышем по формам.
Полезная в изучении ссылочка с прекрасным набором примеров. https://gobyexample.com Посмотрите с позиции решения проблем на Go, а не со списка его возможностей. Определенно простота и эффективность Go позволяет решать проблемы проще чем старые языки. Код (Text): whatAmI := func(i interface{}) { switch t := i.(type) { case bool: fmt.Println("I'm a bool") case int: fmt.Println("I'm an int") default: fmt.Printf("Don't know type %T\n", t) } } whatAmI(true) whatAmI(1) whatAmI("hey") $go run switch.go I'm a bool I'm an int Don't know type string Наглядный пример рефлексии.
Rel, ты уверен?) громкое заявление, но проверять я его конечно не буду. По факту мне все равно кто что думает на этот счет. Ибо все это холивар