Pull to refresh

Comments 230

[sarcasm/]«Пап, а инопланетяне существуют?»
«Нет, сынок, это фантастика»[/sarcasm]
Да, кстати, почти всем логичным требованиям удовлетворяет Qt Creator (хотя, Xcode тоже ничего так). Именно его я обычно и использую.
Qt Creator хорошая вещь(заменяет. на ->). Но когда я увидел как реализована система взаимодействия элементов интерфейса, мне стало плохо. Что поделать в C++ нет событий как в Delphi. А ещё раздражает обязательное переопределение методов в наследниках QObject. Как по мне, так это настоящий всамделишный быдлокод.
Чем вам сигналы-слоты то не угодили? Те же эвенты по сути. И что за такое «обязательно переопределение методов»?
Они хороши. Мне не нравится реализация. Эти CONNECT и DISCONNECT с кучей параметров мне не нравятся. Более понятно простое присвоение, как в Delphi. Хотя у сигналов-слотов есть преимущество: на один сигнал можно повесить несколько обработчиков, иногда в Delphi этого не хватает.
Когда наследуешь классы от QObject, нужно вставлять макрос Q_OBJECT, который разворачивается объявления переопределённых методов.
Нету такого, код для Q_OBJECT moc (meta-object compiler) генерирует сам, пользователю ничего делать не надо.
Кстати, весь этот механизм мета-данных в Qt — это следтствие неразвитых компиляторов в те времена, когда Qt создавался. Сегодня сигналы и слоты можно реализировать полностью средствами языка, например как это сделанно в boost::signals
Когда я только начинал думать о своей среде, я встречал реализацию boost:signals. Синтаксис тот ещё. У delphi он адский, но не настолько. Если не пользуешься им постоянно, то забудешь. Встроена ли поддержка boost в какую либо среду, чтобы кликнул по кнопке, а среда тебе код на бусте?
Нет конечно. В С++ ничего не встроенно, и не должно быть встроенно. Но подключается с пол пинка.
UFO just landed and posted this here
GCC компилирует код на 1С? Или хоть что-то компилирует код 1С под Linux?
>1. Написание программы на русском;
Надеюсь я никогда не встречусь с вашим кодом.
Полностью поддерживаю. Читать даже названия столбцов в сиквел-запросах на русском лично для меня непривычно и неудобно, а весь код на русском языке потребует от писавшего до этого на англоязычных (то есть, всех остальных, кроме 1С и некоторых, эмм, не очень распространенных, скажем так) языках программирования заново учиться воспринимать простейшие конструкции.
UFO just landed and posted this here
Не дай Вам Бог увидеть китайский 1С, бессмысленный и беспощадный!
UFO just landed and posted this here
Ага. При всем уважении к многонациональному составу России, хуже будет писать программы только на мордовском,
как в известной песне.
>Хочу просто дать переменной осмысленное название с пробелами, если потребуется.
Потребует переучивать тех, кто не работал с переменными с пробелами (я даже не скажу сразу, есть ли сейчас подобные возможности в каком-то языке).

>Хочется делать это легко и быстро настолько, чтобы программирование стало похожим на >проектирование.
Вот на этом месте я ожидал предложения скрестить что-то типа Visio и собственно IDE — нарисовал архитектуру, нажал «создать код» и получил структуру классов, полностью ей удовлетворяющую — пустые заготовки. Но, я думаю, что такое уже существует во многих вариантах.

>10. Больное место: стиль. У каждого программиста, работающего с проектом, программа должна выглядеть >так, как нравится программисту. Я не должен думать об отступах и пробелах. Я хочу настроить стиль один >раз и не думать больше об этом;
Вот с этим согласен, но это реализовано больше или меньше уже во многих компиляторах (Eclipse и Visual Studio из того, что я лично видел, и их «автоформат»). Причем я подозреваю, что есть гораздо более мощные в плане автоматического форматирования редакторы.

>11. Контроль версий. Не хочу видеть фразы: удалена 150 строка. Строка 1 перемещена на 5. Добавлено: “int >a = 0;”. Хочу видеть фразы: добавлена функция такая-то, добавлена переменная такая-то, такой-то тип >переименован в сякой и т.д.;
TFS + Visual Studio предлагает прямо код с цветовой разметкой удаленного-измененного-добавленного. Возможно, вы имели в виду описания изменений структуры программы а не кода… Возможно, как дополнение, было бы удобно, но слишком раздуло бы интерфейс слияния изменений, как мне кажется.
Мда. Идея выделять цитаты как в TheBat не прокатила, прошу прощения.
> есть гораздо более мощные в плане автоматического форматирования редакторы.
да, IntellijIdea
У меня еще с обучения в университете осталось впечатление, что создатели IDE под Java вообще очень много внимания уделяют удобству написания кода — форматированию, рефакторингу и прочему, в общем-то, дополнительному, но весьма полезному, функционалу.
Потому что Java это позволяет. В C++ всё намного сложнее как минимум из-за макросов и шаблонов.
> я даже не скажу сразу, есть ли сейчас подобные возможности в каком-то языке
SQL поддерживает `переменные с пробелами`, хоть это и не язык программирования, строго говоря.
Впрочем, поддерживаю Вас, необходимости в таких переменных никакой нет, а сложности при разборе возникнут непременно.

> Вот на этом месте я ожидал предложения скрестить что-то типа Visio и собственно IDE — нарисовал архитектуру, нажал «создать код» и получил структуру классов, полностью ей удовлетворяющую — пустые заготовки. Но, я думаю, что такое уже существует во многих вариантах.
То, что Вы описали, не совсем то, что нужно. Автору поста, как мне кажется, хочется не один раз генерировать код, а иметь возможность при исправлении архитектуры тут же иметь исправленный код. Идея благая, но я видел что-то похожее только в netbeans в модуле для разработки j2me-приложений.

В остальном согласен.
Создавать окна среда будет и будет создавать структуру классов. Но это многие среды умеют. Хочется более простого кодирования взаимодействия между окнами. Я пока не могу сформулировать как именно они должны взаимодействовать, но часто приходится писать код, который чувствуется, что среда может взять на себя.

И ещё хочу отделить интерфейсный код от логики программы. В этом плане тоже недостаточно продумано, т.к. часто интерфейс и логика пересекаются.
Здесь — смесь объективно разумных мыслей и сильно частных. Попробуйте заменить слова «русском» на «китайском» (а что? имеет право) — многое будет понятно. Некоторые языки (javascript, VB,… более новые — не знаю) могут работать с юникодовыми именами (в частности, на русском), и я видел такие программы на 1000 строк. Работать с ними совсем не хотелось. Причины: «а не вылезет ли это где-то боком?». Например, в русско-локализованном Экселе русские имена встроенных (!) функций вылезали боком, тем, что переставали работать и починить было нельзя, не установив английскую версию. Другая причина: «а что будет делать пользователь или разработчик без поддержки данной локали? а без понимания данного языка?»
Ничего не имею против русского языка, но по моему это самое ужасное из того, что вы хотите. Почему именно русский, а не китайский или какой-нибудь арабский? Я например наблюдал, как человек поддерживал код, в который понавставляли переменные и методы, названные на немецком — вот ему радости то было с гуглтранслейтом это рефакторить. А английский в IT на данный момент стандарт де-факто, и его понимает намного больше разработчиков, чем русский.
Так сложилось исторически. Угораздило родится в русскоязычной семье, поэтому русский.
Да и я тоже русский, но при программировании использую английский, и даже комментарии на нем пишу. Просто если программировать на русском языке, то ваш код становится russian-only и кроме русскоговорящего населения он никому не будет нужен.
UFO just landed and posted this here
Так уж исторически сложилось, что кроме C++ есть и другие языки, и, о чудо!, они тоже на английском. Даже Ruby, который, кстати, создал японец.
UFO just landed and posted this here
UFO just landed and posted this here
> 1. Написание программы на русском;
> целый Возраст ученика = 10;

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

> 2. Абстрагирование от понятия unit / модуль / файл. Например для написания программы требуется класс КЛАСС.

Модули придуманы для того, чтобы собрать вместе реализацию и предоставить хороший API к ней. Если у вас не будет модулей, куда будете класть все вспомогательные функции и классы? Загрязнять глобальный неймспейс?

У вас по сути получилось 1 класс = 1 модуль.

> 2.1. Следствие из пункта 2. Компилировать нужно только те функции, которые менялись, т.е. уменьшение времени на компиляцию.

Так и запишем, inline в вашем языке запрещён на уровне стандарта.

Уменьшать время компиляции нужно не за счёт этого. В C++, например, время компиляции большое из-за огромных заголовков, которые парсятся и проверяются семантическим анализатором раз за разом при каждом включении.

> 3. Нормальный поиск.
Для C, C++, Objective C — сделано в clang. Идея простая: если язык достаточно сложный (а в случае C++ это так), то нужно интегрировать поиск и автодополнение в настоящий парсер и семантический анализатор, а не создавать отдельные инструменты. Если у вас будет язык специально спроектирован для лёгкого парсинга без обработки всех конструкций (например, можно легко пропускать тела функций), то только тогда отдельный инструмент будет давать полностью удовлетворительные результаты. (лично я считаю это глупостью — проектировать язык для удобного поиска ущербными инструментами)

> 4. Работа с классами должна быть похожа на работу с файлами, как в менеджерах TotalCommander, Far, т.е. удаление, перенос, переименование, создание должны выполняться одной клавишей;

Это работает пока ваша IDE видит весь код. Если в другом проекте есть ссылки на этот класс, то магия перестаёт работать.

> 5. Автоподстановка слов для имён переменных, классов, типов из словаря;
Или это к пункту 3 или я не понял суть вопроса.

> 6. Отладка отдельно взятой функции или куска кода;
А сейчас разве нет? Ставим breakpoint в функции и отлаживаем её.

> 8. Удобная работа с макросами отладки, кроссплатформенности. Т.е. если в проекте не объявлено #define DEBUG, то я не хочу видеть куски отладочного кода.

Не взлетит. Пусть был код:
a();
#ifdef DEBUG
b();
#endif
c();


Ваша IDE показывает его как:
a();
c();


Программист отредактировал:
a();
foo();
c();


Внимание, вопрос: какой телепатический метод позволит определить, нужно ли вставлять foo() до DEBUG-блока или после?
IDE будет показывать закладку между a(); и c();. При наведении курсора на неё, IDE будет отображать скрытый текст. И естественно каждый макрос такого типа можно будет настроить так, что среда будет отображать текст внутри макроса даже если макрос в проекте не объявлен.
>Загрязнять глобальный неймспейс?
Вспомогательные функции(надеюсь я понял правильно, что это функции, находящиеся вне классов) будут принадлежать проекту и будут глобальными. Каждой функции или классу можно сделать права доступа(например: функцию не видит никто, кроме класса A; функция друг класса B — т.е. имеет неограниченный доступ к личным полям класса и т.д.). И скорость компиляции не будет зависеть от кол-ва функций в пространстве имён.

inline будет. Более того, если я обычную функцию помечу как встроенную, то все места, где используется данная функция будут перекомпилированы автоматически.
Т.к. файлов не будет, не будет и заголовков, а значит нет проблемы многократного включения.

>Или это к пункту 3 или я не понял суть вопроса
Автоподстановка слов как в поиске google. Т.е. если я объявляю переменную: «Количество целей», то я хочу видеть слово «количество» в выпадающем списке после набора, скажем первых трёх букв.

>А сейчас разве нет? Ставим breakpoint в функции и отлаживаем её
Точка останова хороша, но иногда до выполнения функции может пройти много времени.
>Точка останова хороша, но иногда до выполнения функции может пройти много времени.
man unit-tests
Хочется называть переменные, типы, классы на русском, чтобы я мог давать именам осмысленные стопроцентно понятные названия, а не додумывать некий смысл английским словам, которые другой программист может истолковать по-своему.

честно, не надо! это просто убийственно для глаз :)
Также хочется не ломать глаза и не думать в каком стиле именовать переменные.
Хочу просто дать переменной осмысленное название с пробелами, если потребуется.

могу сказать, что создание такого рода грамматики для компилятора — ух какая непростая задача: встает проблема неоднозначности толкования токенов — то ли переменная не объявлена, то ли это продолжение названия переменной, то ли еще что.
Из-за несовершенства инструментов программирования появляются споры о стилях. Стиль должен настраиваться в среде в которой программист пишет и при передаче кода другому программисту, пишущему в другом стиле, код будет выглядеть так, как удобно другому программисту.

честно, не очень понял о чем смысл.
2. Абстрагирование от понятия unit / модуль / файл. Например для написания программы требуется класс КЛАСС. Мне этой информации должно быть достаточно. Не хочется вспоминать в каком модуле класс находится и как правильно его подключать(#include …, #import …, и т.д.);

ну если говорить про файлы и/или разбиение кода класса на файлы, то используйте C#.
6. Отладка отдельно взятой функции или куска кода;

юнит-тестирование?
11. Контроль версий. Не хочу видеть фразы: удалена 150 строка. Строка 1 перемещена на 5. Добавлено: “int a = 0;”. Хочу видеть фразы: добавлена функция такая-то, добавлена переменная такая-то, такой-то тип переименован в сякой и т.д.;

commit messages?
неоднозначности толкования токенов — то ли переменная не объявлена, то ли это продолжение названия переменной, то ли еще что.

Хуже. Не однозначное толкование разделителей. Проблемы начинаются на уровне лексического анализатора. Придется строить грамматики оперирующие отдельными символами.
Прочитал ваш комментарий ниже. Извиняюсь. Мы об одном и том же.
>юнит-тестирование?

да

>commit messages?

Среда должна сообщать какое действие было сделано, а комментарий должен сообщать зачем это было сделано. Контроль версий текста избыточен. Например, я переименую переменную или тип, класс или я добавлю пробелов для читаемости или разобью длинное выражение на несколько строк, то все эти действия не требуют перекомпиляции, а значит и версия не изменилась. Переименования тоже можно не коммитить, но страшно.
Например, я переименую переменную или тип, класс или я добавлю пробелов для читаемости или разобью длинное выражение на несколько строк, то все эти действия не требуют перекомпиляции, а значит и версия не изменилась.

не потребует перекомпиляции только добавление пробелов. переименование переменной или класса, уже приводит к значительным изменениям (помните, что не только Вы будете использовать собственный код).
при изменении длинного выражения — тоже вопрос спорный, т.к. эту может повлиять на логику работы компилятора, оптимизации.
К каким это изменениям может привести переменование? Имени функции в готовой программе нет. Код буду использовать только я. А если код будет использовать кто-то другой(фантастика), то он просто увидит переименованный вариант, как только обновит код. И в выражениях я имел ввиду не изменение, а просто перенос на другую строку части выражения.
Имени функции в готовой программе нет.

В программе нет, но в библиотеках — есть.

Код буду использовать только я.

А откуда об этом знать IDE?

Вообще, после этих фраз у меня возникло серьезное недоверие к вашим «10 годам программирования».
UFO just landed and posted this here
>>Вообще, после этих фраз у меня возникло серьезное недоверие к вашим «10 годам программирования».

имхо, ТС больше похож на 10-летнего «программиста»
только если речь идет не о команде. представьте, что меняется название классов без единого сообщения об этом — плохой тон.
UFO just landed and posted this here
Странно как-то после 10 лет программирования желать писать программы на русском языке. Мне английский настолько въелся что другие варианты кажутся просто дикостью.
Так, погодите. А в чем проблема с пробелами в названиях переменных? Пробел как оператор встречается очень редко, чаще он полностью игнорируется. Значит, проблемы с анализом быть не должно — достаточно не использовать пробел больше нигде, т.е. никаких var a = [b c d], только a = [b, c, d]

Logged user is User;
Logged user <- User Factory, Get logged user(); // Запятой выделяем обращение

User Age is Int;
User Age <- Calculate age ( Logged user [birthday] , Time () );


Смотрится необычно, но вроде адекватно. Думаю, для какого-нибудь эзотерического языка вполне подойдет.
вот как раз-таки с анализом будут большие проблемы.
в моем комменте, я уже написал об этом, но повторюсь:
встает проблема неоднозначности толкования токенов — то ли переменная не объявлена, то ли это продолжение названия переменной, то ли еще что.

Пробел как оператор встречается очень редко, чаще он полностью игнорируется. Значит, проблемы с анализом быть не должно

пробелы не игнорируются — они используются парсерами для начального разбиения кода на токены.
Я могу написать как «a+b», так и «a + b». Более того: любую задачу на C и PHP можно написать без использования пробелов. И при этом, компилятор (интерпретатор) все прекрасно поймет, значит без начального разбиения на токены можно обойтись. Да, наверное, компиляция будет медленнее. Но ведь отработает же! ;)
и будет эзотерическим и непонятным не программисту, а компилятору)
Ниче, компиляторы справятся, они умные ;)
Я не рассматриваю всерьез запись идентификаторов с пробелами (1. не думаю, что это нужно; 2. простор для махинаций с пробелами огромен), но вот как идею для своего эзотерического языка, я пожалуй, возьму на вооружение.
Вы не можете написать inta; или staticpublicfunctionfunc();

Применительно к примеру из статьи:
целый Возраст ученика = 10;

Это переменная «Возраст ученика» типа «целый» или переменная «ученика» типа «целый Возраст»?

Ну и вдогонку:
Печатать(«Имя ученика: Имя\t Возрат ученика: Возраст\n»);

На основании чего первый раз «Имя» это часть строки, а второй раз — переменная, которая должна быть заменена своим значением?
1. Согласен, это я не учел для C. Но моя запись "Logged user is User" — достаточно однозначна, не так ли?
2. Разумеется, такую конструкцию тоже нельзя использовать при таких правилах. Можно использовать другую конструкцию, скажем, из PHP: echo «Some string with {$var->value['index']}»;
На самом деле неоднозначность можно решить, если обязать начинать все идентификаторы с большой буквы. А без такого правила в большинстве случаев может возникать неоднозначность.

По поводу вашего примера. Если ввести оператор is для определения перменных, то необходимо запретить идентификаторам содержать подстроку «is». Иначе полчим, что Connection is ready is Boolean — весьма неоднозначная конструкция.
Да, ключевые слова должны быть запрещены, это уж как водится ;)
>Это переменная «Возраст ученика» типа «целый» или переменная «ученика» типа «целый Возраст»?
Подскажет подсветка текста в IDE.

>На основании чего первый раз «Имя» это часть строки, а второй раз — переменная, которая должна быть заменена своим значением?
На основании скрытого текста перед вторым Возрастом, который скажет IDE, что это переменная. Не хочу использовать $ как PHP, это ухудшает читабельность.

>На самом деле неоднозначность можно решить, если обязать начинать все идентификаторы с большой буквы. А без такого правила в большинстве случаев может возникать неоднозначность.
Это вопрос стиля, который решает каждый програмист сам. Все эти штуки(классы с заглавной — Java, типы с большой T — Delphi, локальные с прописной, приставки sz, n, psz) были сделаны не от хорошей жизни. Не было и наверное ещё нет хороших инструментов.

>По поводу вашего примера. Если ввести оператор is для определения перменных, то необходимо запретить идентификаторам содержать подстроку «is». Иначе полчим, что Connection is ready is Boolean — весьма неоднозначная конструкция.
>Да, ключевые слова должны быть запрещены, это уж как водится ;)

Это тоже не от хорошей жизни. В моей среде не будет таких ограничений, будет полная свобода, вплоть до абсурда:
функция функция(параметр параметр, параметр параметр);
т.е. функция типа функция с двумя параметрами типа параметр, причём типы параметров разные. Например один наследник строки, а другой числа. Но это будет говнокодом и плохим стилем :)
UFO just landed and posted this here
UFO just landed and posted this here
Это вы не совсем понимаете. Написать программу так, чтобы её поняла железяка — это не очень сложно. Гораздо сложнее и важнее написать так, чтобы программу потом понял другой человек. (В том числе и вы сами через несколько лет.) Конечно, если пишутся одноразовые программы на выброс — такой проблемы не стоит. Но в реальной жизни приходится возвращаться и поддерживать.
UFO just landed and posted this here
Все эти штуки(классы с заглавной — Java, типы с большой T — Delphi, локальные с прописной, приставки sz, n, psz) были сделаны не от хорошей жизни.

Вы понимаете, что «все эти штуки» являются чисто стилистическим решением. никто не мешает писать класс a_new_pointer вместо NewPointer, или newPointer.
компилятору это не интересует, а юникодные компиляторы еще умеют понимать и нелатинские символы.
функция, возвращающая функцию — давно используется в функциональных языках.
а вот
>функция функция(параметр параметр, параметр параметр);

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

тип параметр = строка;

Далее объявляю функцию:

функция Ф(параметр: параметр);

Т.е. фактически в функцию передаётся строка. «Параметр параметр»(наверное окажусь на башорге :)) я привёл для демонстрации возможности системы без парсера.
тогда Вы придумали именованные параметры, как в C#, например.
и, кстати, парсер по-любому будет нужен.
Ну про парсер я немного слукавил. Код представленый в виде структурированного текста(например xml, который среда будет скрывать от моих глаз) парсить надо, но парсер xml есть и он настолько прост, что называть его парсером это лстить ему :)
значит уже есть готовый, ну или прототип xml-based source-code парсера?
Ну да. libxml для linux, domxml для винды. Да и самому писать — максимум день/два.
нет, подразумевается не парсер xml как таковой, а парсер, умеющий парсить xml-форматированный код на языке A, и превращать его в чистый код языка А.
xml слишком громоздкий для моих целей, я его привёл просто для примера. Я ещё не конца определился как это будет, но скорее всего это будет что-то нечитаемое бинарное. Среда будет это показывать в human-readable виде для человека и в compiler-readable виде для компилятора :)
У вас компилятор C может скомпилировать код ниже?
intmain(){
return0;
}
Мой компилятор C++ может скомпилировать следующий код (ни одного пробела!):
#include<iostream>;
int
main(){
std::cout<<"Workin!";
return
0;
}
О замене пробелов на переводы строки я что-то не подумал. Забавный выход из положения. Но думаю автор быстро разочаруется в своих идеях попытавшийсь писать в таком стиле.
UFO just landed and posted this here
Истину глаголите. Я устал писать тексты, для этого есть писатели. Кстати про формулы я забыл упомянуть. Формулы в коде выглядят совсем не так, как в алгоритме, а хочется видеть все эти приятные логарифмы, интегралы, корни, степени да в конце концов простых дробей иногда не хватает.
UFO just landed and posted this here
Программирование заполнениями формам, лол :) Добро пожаловать в 90-ые с их «application generators» :) «Програмисты скоро вообще не понадобятся» и «любая домохозяйка сможет написать себе приложение с помощью генератора вроде Access»… Кстати, это вторая волна. На первой родился COBOL — «человеческий» язык, который должен был позволить любому бизнесмену самому писать себе приложения, не прибегая к услугами программистов. Эффективность таких подходов сейчас легко можно видеть в исторической перспективе. :)
UFO just landed and posted this here
UFO just landed and posted this here
Тем не менее, сами бизнесмены так и не пишут ни на Коболе, ни на 1С, а нанимают для этого программистов. Следовательно, подход провалился.
UFO just landed and posted this here
Вы не понимаете, о чём вам пишут.
Visual Studio 2010 Team System + Resharper поддерживает почти все что вы хотите, даже не учитывая что большая часть ваших «хотелок» — бред.
А вы не могли бы перечислить пункты, которые поддерживает Visual Studio 2010 Team System и есть ли версия под Linux?
1 (но это бред), 2 (но это не рекомендуется, неймспейсы не зря придумали), 2.1, 3, 4, 5, 6, 7(почти), 8 (цветовое выделение неактивных кусков и фолдинг), 9 (опять же фолдинг), 10 (персонализации для каждого программиста нет, но можно настроить стиль, после чего работает автоформатирование), 11 (частично), 12.

Опять же — это не голая студия, а с Resharper от JetBrains. Все стоит денег (и не малых). Конкретно студии под Линукс нет.

Есть IDE от JetBrains для немайкрософтовских платформ(IDEA, RubyMine, PyCharm, WebStorm) с похожим набором функциональности, послабее, но зато работает под линукс (Java точнее).
> 1. Написание программы на русском;

Вы пишете, что хотите русский, но в примерах какой-то дубовый промпт с английского. Доводите уж мысль до конца:

«целый Длина» длина у нас целАЯ.
«целый Ч = 127» а число целОЕ.
«дробный Пи» — дробнОЕ

Кроме того, если переменная — объект действия, то стоит её ставить в нужный падеж:
например, не «Печатать(Длинна)» а Печатать(Длинну)

И чтобы правильное словоизменение проверялось компилятором ;)

А сейчас вы с одной стороны хотите русский, а с другой уродуете его так, что просто неприятно. Уж лучше английский, там слова изменяются слабо. Хоть читать можно.
А если я завтра переименую Длину в Расстояние, мне менять написание типа? Я не стремлюсь получить пятёрку за грамматику и синтаксис у русички :) Но вид int Длина меня огорчает. Первоначальная задумка была именовать названия переменных, типов(своих) на русском, потому что со временем понимаешь что вот эту процедуру назвал неправильно(тогда не знал, что так не говорят) или просто не знал как назвать на английском от недостатка знаний, а транслит не писал, ибо не перевариваю. Но посмотрев на текст, написанный смешанным языком, захотелось однообразия.
Иными словами, английский учить лень, знаний не хватает, так почему бы не изуродовать еще и русский.
Именование на любых языках кроме английского — нонсенс.
Именно, таков уж русский язык.

Сплошное дублирование информации: в сказуемом дублируется лицо и число подлежащего, в прилагательном число и род существительного, а падеж дублируются почти везде. Слова подстраиваются подстраиваются под другие, связываются.

Такое дублирование только плюс, когда нужно восстановить информацию, полученную с потерями (не всё услышал в шумном помещении, помехи на линии), но для программирования, это сплошное нарушение правила DRY. Совсем не подходит. В отличии от английского, где слова меняются гораздо реже ;)
UFO just landed and posted this here
UFO just landed and posted this here
LabView и HP VEE существуют уже более 20-и лет, и даже занимают определенную нишу (язык для инженеров-электронщиков предназначенный для управления периферийным железом). Но графические языка программирования распространения так и не получили. Как вы думаете почему?
UFO just landed and posted this here
Есть предположение, что общая деградация образования в РФ наконец добралась и до IT
UFO just landed and posted this here
UFO just landed and posted this here
Обсуждайте по месту. Здесь — это фраза вырванная из контекста, еще и с несуществующем в реале комментарием. Там szKarlen справился и без меня.

Вашу позицию, я понял еще вчера. Не скажу, что я ее считаю жизнеспособной (мое оценочное суждение). Но реализуема — это точно.
UFO just landed and posted this here
Если серьезно, то в студенчестве я работал с Flash (передал работу брату, FlashScript — это его основной сейчас язык). На третьей задаче мне критически перестало хватать его графических редакторов и инъекций кода. Захотелось листинг всего кода сразу.

По поводу кода написанного блок-схемами, в том же вузе их построение было самым нелюбимым делом. 1 час творческой работы на код и 3 часа рутины на блок-схему. Слава богу эту «фичу» на 4-ом курсе упразнили.

Еще аргумент. На текущий момент одной из ведущих направлений развития «кодостроения» является методика рефакторинга. Полуавтоматическое безопасное преобразование кода. Не представляю как это будет выглядеть в графике.

Еще. Для чего вообще нужна графика? Что бы увеличить масштаб решения проблеммы. Но того же самого можно добиться и абстрагированием (графика помоему, тоже самое).

Об образовании. Школьникам нужно общее понимание, процесса решения реальных задач. То как строились игрушки в которые они играют каждый день. Лучше всего на простеньком паскале или бейсике (пускай и промышленно полумертвых). А наш минобр. поощряет псевдопонятные методологии (вероятнее всего пролоббированные), применяемые в узкоспециализированной среде (например, в строительстве или дизайне). И то, только сразу после вуза. Через два года специалисту становится недостаточно этих средств и он начинает изучать сначала язык AutoCad-а, а затем и C.
UFO just landed and posted this here
Опять не соглашусь

Не скажу, что я пользуюсь far-ом для чтения кода очень часто — раз 3 месяца максимум. Мог бы этим удобством и пожертвовать. Вопрос в скорости написания (та же ссылка).

Я не готов отказаться от проверенных временем инструментов (абстрагирование, полиморфизм, рефакторинг, tdd и т.д.) в пользу концепции, которая по факту не работает в других областях для больших задач (стоял рядом с промышленным примененим matlab при конструировании моделей блока управления двигателем).
UFO just landed and posted this here
UFO just landed and posted this here
Продолжаем троллить? т
UFO just landed and posted this here
Как можно ответить по сути на бессмысленный поток бреда? :)
> логический Только для чтения = Истина; Только для чтения.Инвертировать();

Чем вам алгебра логики и операция НЕ не угодили, что вы выдумали метод «Инвертировать»?

> P.S. Мне нужна среда для себя. Никого переучивать не хочу. И парсера в ней не будет.

Вы хоть понимаете, что без парсера не реализовать 99% ваших требований?
метод нужен для того, чтобы не писать так:
readOnly =! readOnly;
Снижает кол-во использований переменной в тексте — снижает вероятность ошибки и повышает читабельность.
>> Я не стремлюсь получить пятёрку за грамматику и синтаксис у русички

похоже, автор статьи обычный школьник. ну и с богатой фантазией, разумеется.
Опыт разработки — 10 лет. Начиная с детсада?)
нет, просто нужно делить на 10.
UFO just landed and posted this here
Почему то мне кажется странным, что при 10-и годах опыта в програмирование, автор мешает в кучу понятия языка програмирования и среды разработки. В половине пунктов автор придумывает свой язык, а в другой половине примочки к IDE для этого языка, но при этом называет все вместе средой разработки.
Просто он начал писать первые программы в очень юном возрасте.
У меня не будет языка как такового. Всё программирование будет вестись только в среде, так что в блокноте не попишешь(это минус конечно). И я хочу в ней собрать всё то что мне нравится в других языках(св-ва и события от Delphi, шаблоны и макросы от C, динамическая типизация от Java). Мне нравятся разные штуки из разных языков, а в одном месте я их не встречал. Увы.
Т.е. вы хотите жестко связать язык и среду разработки? Сомнительная идея…
Кстати, а с каких это пор в Джаве появилась динамическая типизация?
Спутал с JavaScript. Да, я хочу жёстко связать язык и среду. Не хочу помнить синтаксис той или иной конструкции языка. Когда попеременно пишешь на С/С++ и Delphi, забываешь про разные присваивания = и :=, про if… then и if… {}. Не хочу думать, что надо ставить. или -> (вообще удивляет, почему это не может решить компилятор). Я должен думать там, где ни среда, ни компилятор не подскажут. А элементы программы: ветвление, выбор, цикл, функция, класс должны вставляться одной кнопкой.
У Вас проблема выбора языка. Вы пользуетесь достаточно архаичным (хотя и очень выразительным) языком и переносите его возрастные недостатки на все остальные. Создатели C#, например вашими же словами говорят про «что надо ставить. или ->».

По поводу вставки конструкций — в VS существуют шаблоны, только я ими например не пользуюсь. Мне проще набрать while()\n{\n} нажать Ctrl+(e, d) и получить отформатированный элемент менее чем за 2 секунды (и это без R#). Чем искать наощупь мышь, в нужном месте кликать RMouse->Шаблоны->if(...) за минимум 5 сек. Да и попахивает это делитанством каким-то.
Java — не является динамически типизированным языком.
все, кроме макросов — уже существует в C#.
UFO just landed and posted this here
Компилятор не нужен? Нуну :)
Нетбинс, например, это среда разработки для джавы, но нетбинс ≠ джава. Чувствуете разницу?
Есть некоторые нишевые языки, которые намертво спаяны с IDE, например графические языки програмирования вроде LabView, но для языка общего назначения, который еще и хотел бы стать популярным — это довольно плохая идея. Начиная от медленных циклов разработки самого языка и среды, отсутствие возможности сообществу самому создавать удобные для себя инструменты, и заканчивая интеграцией с существующими системами, например с системами автоматических билдов, системами контроля версий, инсталяторами, дистрибутивами…
UFO just landed and posted this here
Про Netbins значит я ошибаюсь, думал это среда специально для java.

Популярные языки для школьников и студентов. А профессиональный инструмент не продаётся в супермаркетах.
Толсто. Но глупо.
А можно хотя бы парочку этих «нишевых языков» озвучить? Просто для общего просвящения.
UFO just landed and posted this here
Опа, так это 1С — «язык, на котором производительность программиста в сотни раз больше, чем на популярных языках»?
UFO just landed and posted this here
Посчитайте, покажите. Интересно же :) Денег, так уж и быть, не возьмем…
UFO just landed and posted this here
UFO just landed and posted this here
В огороде бузина, в киеве дядька.
В аду уже идет бета-тестирование такой «среды». К несчастью её пишут индусы с китайцами (русские просто не успели), так что писать там можно только на хинди и чжунвэнь, причем в некоторых местах по-вертикали — их делали программисты с опытом от 50 лет. Так что учите китайский.
UFO just landed and posted this here
Конечно, конечно. Мать Менделеева была однозначно римлянкой, говорящей на латыни. Поэтому Д.И.Менделеев не стал переводить названия элементов на русский язык, а воспользовался языком матери, чтобы открыть свою знаменитую периодическую систему. LOL
UFO just landed and posted this here
А вы так агрессивно настроены против английского только потому, что вы его не знаете и вам лень учить, или есть еще какие-то причины?
UFO just landed and posted this here
Может объясните, а то я не вижу не смысла не логики в этой фразе…
UFO just landed and posted this here
>Не кривите душой, всё вы прекрасно понимаете.
Не понимаю. Логики и смысла не вижу. Фраза кажется бредом.

>Но это неопровержимая статистика.
Статистику в студию!

>Можно упираться рогами, что статистика ложь и нести прочий бред, но, если вы эмигрировали, и/или работаете в какой-то отрасли не на родном языке, открытия вам не светят почти 100%.
Наглая ложь. Я мог бы потребовать пруф, но я и так знаю, что у вас его нету и быть не может. Зато я могу привести пример, опровергающий то, что вы утверждаете. Посмотрите, например, сюда: en.wikipedia.org/wiki/List_of_Nobel_laureates_in_Physics
Вы увидите целую кучу ученых, получивших нобелевку по физике в странах, которые не являются их страной рождения. Включая русских ученых, работающих в Штатах, Британии, Нидерландах. Так что, «открытия на языке матери» — это бред сивой кобылы.

Вы вообще про науку знаете что-то только по наслышке, если считаете, что язык вообще имеет какое-то решающие значение. Подсказка: во всяких передовых областях, где на весь земной шарик специалистов раз-два и обчелся, на профессиональные темы общаются на таком языке, чтоб друг друга понимать, и обычно это английский.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Вы политик? Или чиновник? Очень уж стиль общения похож.
Точно. Он мне напоминает стиль общения некоего В. Попика, чиновника из Роснанотеха, который троллил (посмертно) Стива Джобса на Appleinsider.ru
UFO just landed and posted this here
безработный программист??? вы уж определитесь, либо вы безработный, либо программист.
Да тролль он скучающий, чего тут не ясно…
Троллить меньше надо, тогда и комментарии писать чаще можно будет :)
UFO just landed and posted this here
Вы несёте несусветную чушь, не надоело вам?

Как-то глупо отвечать на такую чушь, но вот вам простейшее опровержение вашей чуши: Эйнштейн дважды иммигрировал, сначала в Швейцарию, потом в США.
UFO just landed and posted this here
Ответ простой: все открытия делаются на языке матери.
Лолчто?
Он имел в виду тех русских которые открыли люк своей ракеты при помощи зубила и какой-то матери.
Борланд умер и попал в ад, теперь пишут в аду. Вроде противоречий нет :)
UFO just landed and posted this here
А вы не ешьте так много жирного, растолстеете :P
Имея опыт программирования свыше 10 лет
С какими платформами и на каких языках Вам довелось позаниматься программированием? Сколько из этих 10 лет Вы занимались профессиональным промышленным программированием? И если не секрет, где Вы работаете?
Программируемые калькуляторы, затем ассемблер на приставках(типа денди) и 286-х, BASIC, QuickBasic, Pascal, ObjectPascal в Delphi. С Delphi начал писать профессионально. Вместе с Delphi пришлось делать web-интерфейсы. Немного писал на JavaScript, PHP. Далее С/С++ на Linux и микроконтроллерах. Сейчас мне втюхивают ПЛИС, а всеми силами открещиваюсь, ибо пока я делал COM-порт на ней, у меня чуть мозг не лопнул. Сложно думать параллельно.
Профессионально программирую лет 6 где-то.
Немного перефразировал первый пункт. Может так будет меньше споров.
По поводу стиля: где-то на хабре был топик, автор которого рекомендовал использовать системы контроля версий только в связке с утилитами типа astyle.sourceforge.net/. Т.е. чтобы при каждом коммите код автоматически форматировался в «официально принятый» вид, а при апдейте — в то, как нравится конкретному пользователю-программисту. При этом просмотр изменений тоже вроде бы можно настроить так, чтобы разница в синтаксисе игнорировалась
UFO just landed and posted this here
Я не знаком с вашими программистскими нуждами, а вот мои во многих случаях текстовые редакторы покрывают с головой. Просто потому, что набрать две буквы «if» будет быстрее, чем самозабвенно тыкать мышкой в поисках нужной условной конструкции.
Мне тоже когда-то хватало. А потом стало дискомфортно, а после так просто бесить. И никто не говорил, что моя среда будет запрещать набирать код самому.
Вы эту среду сначала выложите, что бы было что обсуждать.
Хе, откуда ей взяться-то?

Есть люди, которые не трындят попусту на хабре, а работают над своим проектом, потом публикуют его.

А есть «хотюны»-мечтатели, которых хлебом не корми — дай потрындеть о «моя среда».

Как вы думаете, к какой категории отнести топик-стартера? ))
UFO just landed and posted this here
Вообще-то я не обсуждать сюда пришёл, а спросить. Может и не надо ничего писать. Оказалось что надо.
UFO just landed and posted this here
Это я к чему, за 20 лет нет прогресса в автоматизации программирования.
Опять писать ifelse ручками — это уже маргинально.
И это при переходе от 486DX к надцати головам в i7?


Есть, знаете ли, такой инструмент — лопата. И этот инструмент остаётся лопатой уже сотни лет. И через сотню-другую лет тоже будет оставаться лопатой. А всё потому, что он тупо выполняет свои функции и в большинстве случаев много удобнее, чем плуг или трактор с экскаватором.
UFO just landed and posted this here
Не откажусь! Особенно от «Феникса» (не «Феликса»)!
UFO just landed and posted this here
Вас, же, напротив, имеет смысл пустить в биореактор. Без лопаты.
UFO just landed and posted this here
Мне это вот что напоминает:

Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова… Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы… И эльфу раз лесные то сделать так что там густой лес… А движок можно поставить так что вдали деревья картинкой, когда подходиш они преобразовываются в 3-хмерные деревья[1]. Можно покупать и т.п. возможности как в Daggerfall. И враги 3-хмерные тоже, и труп тоже 3д. Можно прыгать и т.п. Если играть за охрану дворца то надо слушаться командира, и защищать дворец от злого (имя я не придумал) и шпионов, партизанов эльфов, и ходит на набеги на когото из этих (эльфов, злого...)

и далее
Писать программы на русском языке не удобно хотя бы потому, что в йцукен раскладке нельзя набрать дополнительные скобки и символы "<>[]{}$#", а без них код будет многословен и в виде каши.

И чего это вы непоследовательны, SQL-запрос написали на английском, если уж переделывать, то полностью:
строка Имя = Запрос к БД("ВЫБРАТЬ Имя ИЗ Люди, ГДЕ Идентификатор=Идентификатор"); //здесь Идентификатор - целочисленная переменная (бррр, какая жуть).

Изучите Erlang, это синтаксический наследник Prolog, вам понравится.
Я думаю это лишнее. Я пробовал Erlang, и вроде даже возникло ощущение, что это то что надо, но уж больно у него синтаксис вычурный и непривычный. Да и низкоуровневые функции работы с железом всё равно написаны на С, так что по сути Erlang — надстройка. Я думаю, если делать надстройку, то делать её максимально удобной и привычной для себя.
Так вы же хотите еще более непривычный синтаксис. Синтаксис Erlang божественен, если его понять, у него ведь обычные синтаксические конструкции, тело функции это обычное предложение, разбиваемое запятыми и точной с запятой, и заканчивающиеся точкой. Найдите компилятор, который позволяет именовать функции по-русски, и программируйте в своем неповторимом стиле :)

Некоторые низкоуровневые функции написаны на ассемблере, а остальное всё надстройка, если уж до конца идти. А лучше вообще в машкоде программировать, чистый идеал, и не нужны никакие языковые конструкции, раз уж разговаривать с машиной, то на её языке.
UFO just landed and posted this here
А, злобный тролль. Хрен тебе, а не еда.
UFO just landed and posted this here
Я не хочу более непривычный синтаксис. Я хочу конструкций, которые повысят читабельность и уменьшат кол-во кода и значительно повысят мой кпд. А также совершенно не хочу знать и помнить чем разделять параметры и чем завершать функцию или класс. Зачем мне облегчать работу компилятору, ставя '.' в конце функции в Erlang, ';' в конце класса в C++, если машина должна МНЕ помогать, а не наоборот.
С вами всё ясно, я думал, что у вас реальные идеи есть по созданию своего языка программирования, получается что их нет, есть лишь несвязанные между собой хотелки, причем сами себе противоречите, в коде используете ненавистные вами точки с запятой. Сделайте в своем ЯП, чтобы можно было грабить корованы.
И идеи есть и среду пишу, более того некоторые задумки уже использую, чтобы облегчить написание среды. А точки с запятой это привычка.
UFO just landed and posted this here
В Lisp-подобных языках синтаксис отсутствует. Вам туда.
UFO just landed and posted this here
Ситаксис прежде всего не исполняется, а пишется. Человеком, с клавиатуры. И вот тут как раз и будут шарады — вспоминать, нужна ли в конце синтаксической последовательности точка или точка с запятой, какой приоритет у данной операции (из списка в два десятка пунктов) и ниже ли он приоритета другой соседней операции, чтобы знать, нужно ли её поставить в скобки, и т.п. А в Lisp вы закрыли скобку — и всё.
UFO just landed and posted this here
В С++ исключительно слева направо? Да вы что? А вы про "спиральное правило" знаете?

Не совсем понятно, куда это требуется возвращаться в Lisp.
UFO just landed and posted this here
UFO just landed and posted this here
Вы уж простите, но программировать на русском языке…
UFO just landed and posted this here
Это было так давно, что я даже не представляю что там.
UFO just landed and posted this here
Посмотрев на исходники, я вспомнил, что это было время, когда хотелок было меньше и я хотел сделать среду, чтобы она могла работать в текстовом режиме. Потом я от этого отказался и проект умер.
Окей. А нынешнее где? Вы кстати как, на самообеспечении (andybel, как постоянный посетитель запорожского Пушкинского музея, должен знать более адекватный перевод фразы «eat your own dogfood») али пользуетесь богомерзкими текстовыми редакторами для разработки?
UFO just landed and posted this here
Я уже бегу и спотыкаюсь, пишу вот на ходу. Вы, милейший сударь, похоже тоже торопитесь, потому что иначе написали бы слово «тоже» слитно, а не раздельно. Так что, перевод то можете приличный предложить, или только языком трясти горазды?
UFO just landed and posted this here
Нынешнее лежит у меня на диске. Я решил никуда не выкладывать, т.к. это нужно только мне, как я понял. Пишу в нескольких средах(Delphi, CodeForge, Lazarus, ну и в обычных текстовых редакторах).
UFO just landed and posted this here
UFO just landed and posted this here
Хоть и не принято говорить про НЛО, но вот честно, я не понимаю, какие цели ОНО преследовало, дав возможность опубликовать такую статью из песочницы. Это такой вид развлечения, посмотреть как растерзают новичка на первой же его статье?
UFO just landed and posted this here
Просто, по-мему, было вполне очевидно, что статья уйдёт в минус сразу же (хотя бы по опыту былых подобных изысков). Так зачем давать публиковать статью, которая сразу «заткнёт» пользователя тем, что его заминусуют?
UFO just landed and posted this here
IDE или статью? Статью теперь, видимо, снова только через песочницу. Хороший способ…
Sign up to leave a comment.

Articles