Pull to refresh
67
@NeoCoderead⁠-⁠only

User

105
Subscribers
Send message
К сожалению, порог вхождения на рынок серьезных девайсов слишком высокий. Даже на всяких кикстартерах в Штатах делают в основном мелочевку, но что-то не слышно про авторские смартфоны, планшеты, UMPC и ноутбуки.
Я не верю, что людям нравятся однотипные "доски". Не верю, что при наличии широкого выбора с адекватными ценами люди будут все равно покупать "доски". Но увы — все, даже китайцы, клепают одно и то же.
Кажется понял, если кому надо:
http://blog.adamcameron.me/2015/07/cfml-elvis-operator-and-null-coalescing.html
Null-coalescing проверяет исключительно на null (нуллабельность), а Elvis — просто на true/false как обычный тернарный оператор.
А я сижу и не пойму, в чем разница между Elvis operator и Null coalescing operator. Она есть?
А в чем прикол с постинкрементом в самом первом примере?

var i = 5
i = i++ + i++
println(i)

Если он "пост" инкремент, то должен выполняться ПОСЛЕ вычисления всего выражения выражения, после "точки с запятой" которой в этом языке нет. Сначала i = 5+5, т.е.10, затем еще два раза ++, то есть 12. Почему 11?
Очень удивляет: не вижу ни одного комментария с теорией заговора рептилоидов с Нибиру и прочего такого.

Может быть это просачиваются статьи из параллельных Вселенных, в которых эти люди и места реальны? :)
В который уже раз восхищаюсь внешним видом и дизайном старых устройств))
Да я все это прекрасно понимаю…
Но жить-то станет скучнее, программирование превратится из Хакерства в унылую конвейерную работу за копейки. Мечта менеждеров, да… но программистам-то это зачем?
Реализуйте.
Возможно вы станете одним из отцов-основателей Нового Программирования ))
На самом деле о таком программировании многие мечтают, но когда дело касается практики, все равно все сводится к тому, что нужно щелкнуть на компоненте и написать какой-то код в окошке (и это в лучшем случае).
А что не так со статьями и комментариями divan0 ?
Вот будет прикол, если через сколько-то лет Мигель станет руководителем MS )))
Боже мой, что это? Унарный оператор сравнения?
Все-же непонятно, что будет с Mono для Linux. Могут сделать нормальную поддержку, могут искусственно сдерживать, а могут и прикрыть. Все-же получается — компания которая разрабатывает свою ОС, будет делать продукт, который поспособствует (так или иначе) распространенности конкурирующей ОС…
Конечно авторы языка на то и авторы, чтобы решать каким язык должен быть… это их право. Но у меня другой подход к дизайну языков программирования. Я бесконечно уважаю и доверяю Программисту, и считаю что даже если одному программисту из миллиона понадобится для каких-то неведомых мне Хакерских целей та или иная фича — она должна быть в языке. Пусть инкремент, пусть что-то низкоуровневое или даже оператор goto… каждый программист — Творец, и не мое дело решать чем можно пользоваться а чем нельзя. Вот как-то так))
Фичу с кортежами небось прикрутили сбоку изолентой :). В C# вроде бы максимальная длина кортежа равна 8, здесь 6…
Догадайтесь почему и откуда такие магические числа.
Что-то все повыкидывали.
Хоть я и не писал на Swift, но тенденция выкидывать общепринятые устоявшиеся за десятилетия и понятные любому программисту конструкции (типа инкремента) ИМХО странная. Это все равно что из математики выкинуть значок квадратного корня, сославшись на то что можно пользоваться возведением в степень 1/2.
Круче всего было бы если бы рефлексию добавили в C++17
На самом деле есть много способов. Один из них не так давно рассматривался на Хабре.
Но самое удивительное — есть способы организации полной рефлексии не только на современном С++, но и на чистом Си, причем времен создания языка (70-х годов!).

Есть способ на boost::preprocessor, который в общем не зависит от того, Си это или С++. Достаточно навороченный способ, требующий большой отдельной статьи.

А есть еще один способ, невероятно простой и прозрачный — основанный на двойном include заголовочого файла; элементы синтаксической конструкции (не только перечисления, но и например структуры) объявляются с помощью специальных макросов, которые в зависимости от некоторой макропеременной раскрываются или в обычные элементы (имя перечисления, идентификаторы элементов и т.д.), или в элементы статического массива данных рефлекси.

#ifdef GENERATE_REFLECTION
#define ENUM_ITEM(item, data) data, 
#else
#define ENUM_ITEM(item, data) item, 
#endif

Ну а дальше очевидно: везде используется обычное подключение заголовочного файла с перечислением, и только в одном единственном месте (точке инстанцирования, которая должна быть .c или .cpp файлом) предварительно объявляется макрос и создается статический объект рефлексии

#include "my_enum.h"
#define GENERATE_REFLECTION
#include "my_enum.h"
#undef GENERATE_REFLECTION
Интересно, почему дизайн старых устройств кажется таким вкусным, теплым и приятным?

Information

Rating
Does not participate
Registered
Activity