Обновить
64
0.8

Programmer

Отправить сообщение
Тем что программирование — это не человеческое общение. Это нечто совершенно особое, с уже выработанными за десятилетия правилами и внутренней логикой. У людей, имеющих отношение к программированию, эта логика уже сидит в подсознании. Например, зная C/С++, можно легко читать программу на C#, Java, JavaScript, ObjectiveC, D, PHP, Perl и т.д. Это и священное правило «идентификатор — это последовательность букв, цифр и символов подчеркивания, начинающаяся с буквы или символа подчеркивания», и синтаксис блочных и однострочных комментариев, и операции ++, --, += и т.д., и общепринятые ключевые слова if, else, for, и имена базовых типов, и фигурные скобки в качестве операторных… да и вообще иерархическая структура программы (также как в XML/HTML — понятие тегов и угловые скобки). Это стандарт де-факто, и в целом, надо сказать, весьма неплохой. Это все уже в крови, на таком же уровне как у физиков — определенные буквы для обозначения физических величин, а у математиков — символы корней, производных и интегралов. Зачем нам вместо этого «человеческий язык»?

Появляются новые парадигмы, новые возможности, совершенствуются старые — но базовый синтаксис остается, он всем понятен, он удобен для изучения новых возможностей… он возник не просто так, а в результате жесткого естественного отбора и огромной практики. Зачем от этого отказываться?

Программа должна быть понятна читающему, и это достигается более строгой формализацией и «универсализацией» синтаксиса, никак не приближением его к человеческому языку. Приведу вам пример: в Си «имя массива это указатель на первый элемент массива», Может быть когда-то это было удобно, но это нарушает логику языка: почему тогда имя структурной переменной — не указатель на первый элемент структуры?
Еще была такая тема, что переменная без указания типа была по умолчанию int. Тоже нелогичность, хорошо что в С++ это сразу выпилили.
Далее: в С++ классы могут быть вложенными в другие классы; классы могут быть вложенными в функции, функции могут быть вложенными в классы (собственно методы классов), но функции не могут быть вложенными в функции! Вот пример нелогичности. Да, сдедали лямбды, но это лямбды а не вложенные функции, нелогичность все равно осталась.
Аналогично с пространствами имен. Они не могут быть вложенными никуда, кроме как в другие пространства имен. А в некоторых случаях было бы удобно сделать пространства имен внутри классов (вспомните огромные «оконные „классы в разных библиотеках — CWnd, QWidget и т.д.). Ну и так далее. Проблема всех существующих языков в том, что в них многие фичи существуют как-бы по отдельности, синтаксис неуниверсален (нередко в угоду “читаемости»), нередко тянутся какие-то legacy вещи из глубины веков (ужасные #include в С/С++, от которых нужно было бы избавиться прежде чем сочинять лямбды и метапрограммирование) и т.д.
При универсальном подходе те же шаблоны С++, на которых в boost наворотили такого, что в кошмарном сне не приснится, можно было бы сделать куда проще: разрешите передавать в шаблоны ЛЮБЫЕ объекты времени компиляции, а не только типы и константы. Например, блоки кода. И сделайте синтаксические макросы. Все, навороты никому не будут нужны, все станет просто и понятно.
Во-первых, респект за то, что это не просто придумали новый язык, но и реально пытаетесь сделать компилятор.
Во-вторых, языки программирования — это моя любимая тема, не пропускаю мимо ни одного нового языка, сам разрабатываю свой язык (хотя сейчас это скорее работа по сравнению многочисленных фич существующих языков, систематизации и попытки продумать архитектуру «идеального» языка, включающего как можно больше возможностей).

По сути — многого не понял, с тем что понял — не согласен:) Вы как-то очень резко порвали с традиционной архитектурой языков программирования… одни пробелы и дефисы в идентифиакторах чего стоят. Вы пишете «лучший синтаксис придуманный человечеством — это письменная речь» — позволю с вами не согласиться. Письменная речь — это нечто, наименее приспособленное для программирования (как и для многих других прикладных задач). В математике, физике и химии есть формулы, в инженерном деле — чертежи и схемы, а человеческая речь используется как средство комментирования (собственно, как и в программировании). Всякие попытки протащить естественный синтаксис в программирование — это бейсикописательство в чистом виде под лозунгами «программирование для домохозяек». Оно нам надо? Я считаю — не надо. Это не значит, что программирование должно быть сложным (и тем более это не значит, что его следует искусственно делать сложным). Программирование должно быть простым и логичным для профессионалов. Не стоит заботиться о новичках — пусть порог вхождения будет высокий, это даже хорошо. Но те, кто таки вошел — должны испытывать только восхищение от продуманности и гениальности тех языков, которыми они пользуются.

Ну и то что уже отмечали — хочется видеть развернутый пример и сравнение с реализациями на других языках, с пояснением «почему на вашем языке это лучше».
А на самом деле, смотрю на картинку и думаю… айфон — глупая блестящая игрушка. Внешний вид приелся, На витринах всех магазинов стоят однотипные блестящие сенсорные телефончики-кирпичики разных размеров от миниатюрных до планшетов.
А Psion… хочется подержать в руках. Провести пальцами по клавиатуре. Использовать для чего-то умного… Есть в нем что-то от старых добрых времен… Никогда его в живую не видел, к сожалению. Жалко, действительно жалко что сейчас таких девайсов не делается. Современное бы железо туда, периферии побольше — GPS, Wi-Fi, NFC, 3G/4G/LTE, Линукс какой-нибудь…
Иногда даже приходит шальная мысль — а существуют ли фирмы, которые на базе существующих решений/платформ разрабатывают смартфоны и прочие мобильные девайсы с дизайном и функционалом заказчика?
Для своих проектов я единственный разработчик, так что вероятность одновременного push стремится к нулю:) Но за информацию спасибо, полезно это знать.
«Центральное» в смысле то, которое для обмена между рабочими. Архитектура получается простая, в чем-то похожая на svn: на все компах — рабочие репозитории, в dropbox — репозиторий для синхронизации. Перед началом работы делаешь pull + update, по оконачании — commit + push в этот обменный репозиторий.
К проектам это отношения не имеет, но конечно для каждого проекта или группы связанных проектов удобнее иметь свой репозиторий.
На работе svn, для своих проектов mercurial (причем «центральное» хранилище разместил на dropbox, очень удобно)
Бумажная вряд ли, а pdf-ки содержат, на safaribooksonline даже прямым текстом написано что у них в книгах водяные знаки. Впрочем, нет ужаснее формата чем pdf — само воплощение закрытости и проприетарности. Все нужно конвертить в fb2.
Немного не по теме, но интересно… кто нибудь знает — Гугл будет обновлять данные StreetView по Питеру и Москве? Например, некоторые улицы были закрыты на ремонт и панорамных фоток нет.
3 кнопки. По умолчанию обычно это — листание вперед, назад, меню (она же enter).
Чтобы выйти в режим перехода по ссылкам, нужно скорее всего выйти в меню, там выбрать пункт (а это еще N нажатий вперед/назад), выбрать этот режим (кнопка «меню»), и дальше кнопками вперед-назад выбрать нужную ссылку среди нескольких, нажать кнопку перехода («меню»). Как-то так?

Про необязательность внешней флэшки могу еще согласиться (в общем все равно куда книги записывать — на внешнюю или на внутреннюю), С остальным не соглашусь.
Сенсорный экран нужен для того, чтобы читать книги на иностраных языках (контекстный словарь), делать заметки в читаемых книгах, переходить по гиперссылкам/сноскам и для многих других интересных вещей.
Флэшка и usb — для того, чтобы закачивать в ридер любые книги, а не покупать то что соизволил выложить на свой сайт какой-то дядя.
Вайфай — чтобы в случае необходимости можно было выйти в инет там, где нет компа (и не таскать с собой планшет или ноутбук). Книжка — всегда с собой, зарядки хватает на месяц (в отличие от планшетов/ноутов).
Для меня читалка — это именно планшет, легкий, удобный, читаемый на солнечном свете, не требующий ежедневной подзарядки, наиболее комфортный для зрения и т.д. А «мультимедийность» (ака посмотреть видеоролики/поиграть в игрушки) мне не нужна.
ИМХО бессмысленная вещь. Ни сенсорного экрана, ни usb, ни флэшки внешней, ни вайфая… какое-то непонятное приложение нужно ставить для закачки книг (и небось еще не любых книг, а только купленных в их магазине)… В общем вещь в себе. Лучше потратиться на нормальную читалку.
Еще может быть умельцы будут их использовать как источник экранов для замены :)
Да, бытовые квантовые модемы это было бы супер! Полная свобода и полное отсутствие контроля со стороны каких-бы то ни было провайдеров, властей и т.д.
Так (без знака =) этот stylesheet.css открывается в creator'e для редактирования:) А со знаком = все равно ругается на неизвестную опцию.
Путем гугления нашел вариант, который частично работает: qtcreator.exe — -stylesheet=stylesheet.css
(то есть два дефиса, пробел, дефис).
У меня эта опция не работает. Выдает «неизвестная опция stylesheet=stylesheet.css», дальше показывает окно со списком опций Qt Creator, в списке такой опции тоже нет. QT Creator 2.4.1 из последнего QtSDK…
* «считаете с тем» -> «считаете»
Ну вот вы считаете с тем, что жизнь (невероятно сложная штука, да) не могла зародится самостоятельно. И делаете вывод, что ее кто-то создал. А вы не думаете, что этот «кто-то», для того чтобы спроектировать и создать такую сложную штуку как жизнь (не говоря уже о Вселенной), должен сам быть на много порядков сложнее?
То есть, «решая» одну проблему, вы создаете другую, куда более трудноразрешимую: а кто создал бога? Ведь не мог же он возникнуть случайно, сам по себе (если уж биологическая жизнь не смогла возникнуть случайно, то сверхсвемогущий сверхразумный бог, будучи куда более сложной системой, и подавно не мог!) Значит, бога кто-то создал. Кто-то, куда более могущественный!
Рекурсия?
Есть такая категория пользователей, весьма многочисленная, которая любит «полежать в интернете». Не посидеть, а именно полежать:) Поиграть в игрушечки, посмотреть ролики, посмотреть вконтактике и всякое такое. Есть правда пользователи, которые с него книги читают, хотя e-ink для таких целей все-же гораздо лучше для зрения.
Для нормального, серьезного кодинга планшеты конечно же не предназначены.
Поэтому лично я предпочел бы развитие UMPC, а не планшетов. Но увы, большинству нужны именно планшеты, так что приходится мириться, ничего не поделаешь:)
Интересно, Google со своими разработками по беспилотным автомобилям присоединится?
Спасибо! Есть конечно платные visualgdb и wingdb, но поскольку они платные, то механизм их работы и исходники аддинов были недоступны.

Информация

В рейтинге
1 826-й
Зарегистрирован
Активность