К сожалению, порог вхождения на рынок серьезных девайсов слишком высокий. Даже на всяких кикстартерах в Штатах делают в основном мелочевку, но что-то не слышно про авторские смартфоны, планшеты, UMPC и ноутбуки.
Я не верю, что людям нравятся однотипные "доски". Не верю, что при наличии широкого выбора с адекватными ценами люди будут все равно покупать "доски". Но увы — все, даже китайцы, клепают одно и то же.
А в чем прикол с постинкрементом в самом первом примере?
var i = 5
i = i++ + i++
println(i)
Если он "пост" инкремент, то должен выполняться ПОСЛЕ вычисления всего выражения выражения, после "точки с запятой" которой в этом языке нет. Сначала i = 5+5, т.е.10, затем еще два раза ++, то есть 12. Почему 11?
Да я все это прекрасно понимаю…
Но жить-то станет скучнее, программирование превратится из Хакерства в унылую конвейерную работу за копейки. Мечта менеждеров, да… но программистам-то это зачем?
Реализуйте.
Возможно вы станете одним из отцов-основателей Нового Программирования ))
На самом деле о таком программировании многие мечтают, но когда дело касается практики, все равно все сводится к тому, что нужно щелкнуть на компоненте и написать какой-то код в окошке (и это в лучшем случае).
Все-же непонятно, что будет с Mono для Linux. Могут сделать нормальную поддержку, могут искусственно сдерживать, а могут и прикрыть. Все-же получается — компания которая разрабатывает свою ОС, будет делать продукт, который поспособствует (так или иначе) распространенности конкурирующей ОС…
Конечно авторы языка на то и авторы, чтобы решать каким язык должен быть… это их право. Но у меня другой подход к дизайну языков программирования. Я бесконечно уважаю и доверяю Программисту, и считаю что даже если одному программисту из миллиона понадобится для каких-то неведомых мне Хакерских целей та или иная фича — она должна быть в языке. Пусть инкремент, пусть что-то низкоуровневое или даже оператор goto… каждый программист — Творец, и не мое дело решать чем можно пользоваться а чем нельзя. Вот как-то так))
Фичу с кортежами небось прикрутили сбоку изолентой :). В C# вроде бы максимальная длина кортежа равна 8, здесь 6…
Догадайтесь почему и откуда такие магические числа.
Что-то все повыкидывали.
Хоть я и не писал на Swift, но тенденция выкидывать общепринятые устоявшиеся за десятилетия и понятные любому программисту конструкции (типа инкремента) ИМХО странная. Это все равно что из математики выкинуть значок квадратного корня, сославшись на то что можно пользоваться возведением в степень 1/2.
На самом деле есть много способов. Один из них не так давно рассматривался на Хабре.
Но самое удивительное — есть способы организации полной рефлексии не только на современном С++, но и на чистом Си, причем времен создания языка (70-х годов!).
Есть способ на boost::preprocessor, который в общем не зависит от того, Си это или С++. Достаточно навороченный способ, требующий большой отдельной статьи.
А есть еще один способ, невероятно простой и прозрачный — основанный на двойном include заголовочого файла; элементы синтаксической конструкции (не только перечисления, но и например структуры) объявляются с помощью специальных макросов, которые в зависимости от некоторой макропеременной раскрываются или в обычные элементы (имя перечисления, идентификаторы элементов и т.д.), или в элементы статического массива данных рефлекси.
Ну а дальше очевидно: везде используется обычное подключение заголовочного файла с перечислением, и только в одном единственном месте (точке инстанцирования, которая должна быть .c или .cpp файлом) предварительно объявляется макрос и создается статический объект рефлексии
Я не верю, что людям нравятся однотипные "доски". Не верю, что при наличии широкого выбора с адекватными ценами люди будут все равно покупать "доски". Но увы — все, даже китайцы, клепают одно и то же.
http://blog.adamcameron.me/2015/07/cfml-elvis-operator-and-null-coalescing.html
Null-coalescing проверяет исключительно на null (нуллабельность), а Elvis — просто на true/false как обычный тернарный оператор.
Если он "пост" инкремент, то должен выполняться ПОСЛЕ вычисления всего выражения выражения, после "точки с запятой" которой в этом языке нет. Сначала i = 5+5, т.е.10, затем еще два раза ++, то есть 12. Почему 11?
Может быть это просачиваются статьи из параллельных Вселенных, в которых эти люди и места реальны? :)
Но жить-то станет скучнее, программирование превратится из Хакерства в унылую конвейерную работу за копейки. Мечта менеждеров, да… но программистам-то это зачем?
Возможно вы станете одним из отцов-основателей Нового Программирования ))
На самом деле о таком программировании многие мечтают, но когда дело касается практики, все равно все сводится к тому, что нужно щелкнуть на компоненте и написать какой-то код в окошке (и это в лучшем случае).
Догадайтесь почему и откуда такие магические числа.
Хоть я и не писал на Swift, но тенденция выкидывать общепринятые устоявшиеся за десятилетия и понятные любому программисту конструкции (типа инкремента) ИМХО странная. Это все равно что из математики выкинуть значок квадратного корня, сославшись на то что можно пользоваться возведением в степень 1/2.
Но самое удивительное — есть способы организации полной рефлексии не только на современном С++, но и на чистом Си, причем времен создания языка (70-х годов!).
Есть способ на boost::preprocessor, который в общем не зависит от того, Си это или С++. Достаточно навороченный способ, требующий большой отдельной статьи.
А есть еще один способ, невероятно простой и прозрачный — основанный на двойном include заголовочого файла; элементы синтаксической конструкции (не только перечисления, но и например структуры) объявляются с помощью специальных макросов, которые в зависимости от некоторой макропеременной раскрываются или в обычные элементы (имя перечисления, идентификаторы элементов и т.д.), или в элементы статического массива данных рефлекси.
Ну а дальше очевидно: везде используется обычное подключение заголовочного файла с перечислением, и только в одном единственном месте (точке инстанцирования, которая должна быть .c или .cpp файлом) предварительно объявляется макрос и создается статический объект рефлексии