Тем что программирование — это не человеческое общение. Это нечто совершенно особое, с уже выработанными за десятилетия правилами и внутренней логикой. У людей, имеющих отношение к программированию, эта логика уже сидит в подсознании. Например, зная 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, Линукс какой-нибудь…
Иногда даже приходит шальная мысль — а существуют ли фирмы, которые на базе существующих решений/платформ разрабатывают смартфоны и прочие мобильные девайсы с дизайном и функционалом заказчика?
«Центральное» в смысле то, которое для обмена между рабочими. Архитектура получается простая, в чем-то похожая на svn: на все компах — рабочие репозитории, в dropbox — репозиторий для синхронизации. Перед началом работы делаешь pull + update, по оконачании — commit + push в этот обменный репозиторий.
К проектам это отношения не имеет, но конечно для каждого проекта или группы связанных проектов удобнее иметь свой репозиторий.
Бумажная вряд ли, а 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, а не планшетов. Но увы, большинству нужны именно планшеты, так что приходится мириться, ничего не поделаешь:)
Появляются новые парадигмы, новые возможности, совершенствуются старые — но базовый синтаксис остается, он всем понятен, он удобен для изучения новых возможностей… он возник не просто так, а в результате жесткого естественного отбора и огромной практики. Зачем от этого отказываться?
Еще была такая тема, что переменная без указания типа была по умолчанию int. Тоже нелогичность, хорошо что в С++ это сразу выпилили.
Далее: в С++ классы могут быть вложенными в другие классы; классы могут быть вложенными в функции, функции могут быть вложенными в классы (собственно методы классов), но функции не могут быть вложенными в функции! Вот пример нелогичности. Да, сдедали лямбды, но это лямбды а не вложенные функции, нелогичность все равно осталась.
Аналогично с пространствами имен. Они не могут быть вложенными никуда, кроме как в другие пространства имен. А в некоторых случаях было бы удобно сделать пространства имен внутри классов (вспомните огромные «оконные „классы в разных библиотеках — CWnd, QWidget и т.д.). Ну и так далее. Проблема всех существующих языков в том, что в них многие фичи существуют как-бы по отдельности, синтаксис неуниверсален (нередко в угоду “читаемости»), нередко тянутся какие-то legacy вещи из глубины веков (ужасные #include в С/С++, от которых нужно было бы избавиться прежде чем сочинять лямбды и метапрограммирование) и т.д.
При универсальном подходе те же шаблоны С++, на которых в boost наворотили такого, что в кошмарном сне не приснится, можно было бы сделать куда проще: разрешите передавать в шаблоны ЛЮБЫЕ объекты времени компиляции, а не только типы и константы. Например, блоки кода. И сделайте синтаксические макросы. Все, навороты никому не будут нужны, все станет просто и понятно.
Во-вторых, языки программирования — это моя любимая тема, не пропускаю мимо ни одного нового языка, сам разрабатываю свой язык (хотя сейчас это скорее работа по сравнению многочисленных фич существующих языков, систематизации и попытки продумать архитектуру «идеального» языка, включающего как можно больше возможностей).
По сути — многого не понял, с тем что понял — не согласен:) Вы как-то очень резко порвали с традиционной архитектурой языков программирования… одни пробелы и дефисы в идентифиакторах чего стоят. Вы пишете «лучший синтаксис придуманный человечеством — это письменная речь» — позволю с вами не согласиться. Письменная речь — это нечто, наименее приспособленное для программирования (как и для многих других прикладных задач). В математике, физике и химии есть формулы, в инженерном деле — чертежи и схемы, а человеческая речь используется как средство комментирования (собственно, как и в программировании). Всякие попытки протащить естественный синтаксис в программирование — это бейсикописательство в чистом виде под лозунгами «программирование для домохозяек». Оно нам надо? Я считаю — не надо. Это не значит, что программирование должно быть сложным (и тем более это не значит, что его следует искусственно делать сложным). Программирование должно быть простым и логичным для профессионалов. Не стоит заботиться о новичках — пусть порог вхождения будет высокий, это даже хорошо. Но те, кто таки вошел — должны испытывать только восхищение от продуманности и гениальности тех языков, которыми они пользуются.
Ну и то что уже отмечали — хочется видеть развернутый пример и сравнение с реализациями на других языках, с пояснением «почему на вашем языке это лучше».
А Psion… хочется подержать в руках. Провести пальцами по клавиатуре. Использовать для чего-то умного… Есть в нем что-то от старых добрых времен… Никогда его в живую не видел, к сожалению. Жалко, действительно жалко что сейчас таких девайсов не делается. Современное бы железо туда, периферии побольше — GPS, Wi-Fi, NFC, 3G/4G/LTE, Линукс какой-нибудь…
Иногда даже приходит шальная мысль — а существуют ли фирмы, которые на базе существующих решений/платформ разрабатывают смартфоны и прочие мобильные девайсы с дизайном и функционалом заказчика?
К проектам это отношения не имеет, но конечно для каждого проекта или группы связанных проектов удобнее иметь свой репозиторий.
Чтобы выйти в режим перехода по ссылкам, нужно скорее всего выйти в меню, там выбрать пункт (а это еще N нажатий вперед/назад), выбрать этот режим (кнопка «меню»), и дальше кнопками вперед-назад выбрать нужную ссылку среди нескольких, нажать кнопку перехода («меню»). Как-то так?
Про необязательность внешней флэшки могу еще согласиться (в общем все равно куда книги записывать — на внешнюю или на внутреннюю), С остальным не соглашусь.
Флэшка и usb — для того, чтобы закачивать в ридер любые книги, а не покупать то что соизволил выложить на свой сайт какой-то дядя.
Вайфай — чтобы в случае необходимости можно было выйти в инет там, где нет компа (и не таскать с собой планшет или ноутбук). Книжка — всегда с собой, зарядки хватает на месяц (в отличие от планшетов/ноутов).
Для меня читалка — это именно планшет, легкий, удобный, читаемый на солнечном свете, не требующий ежедневной подзарядки, наиболее комфортный для зрения и т.д. А «мультимедийность» (ака посмотреть видеоролики/поиграть в игрушки) мне не нужна.
Еще может быть умельцы будут их использовать как источник экранов для замены :)
Путем гугления нашел вариант, который частично работает: qtcreator.exe — -stylesheet=stylesheet.css
(то есть два дефиса, пробел, дефис).
То есть, «решая» одну проблему, вы создаете другую, куда более трудноразрешимую: а кто создал бога? Ведь не мог же он возникнуть случайно, сам по себе (если уж биологическая жизнь не смогла возникнуть случайно, то сверхсвемогущий сверхразумный бог, будучи куда более сложной системой, и подавно не мог!) Значит, бога кто-то создал. Кто-то, куда более могущественный!
Рекурсия?
Для нормального, серьезного кодинга планшеты конечно же не предназначены.
Поэтому лично я предпочел бы развитие UMPC, а не планшетов. Но увы, большинству нужны именно планшеты, так что приходится мириться, ничего не поделаешь:)