Войти
AndroidФорумОбщее

Советы новичку. Перешел с Делфи. (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
11:08, 1 мар. 2013

Хм, опять "религиозные споры"...
>не пугайте Дельфийца "нормальной ОС". Для него (как и для большинства впрочем) Винда - самая нормальная ОС.
Пожалуй самое разумное мнение по поводу ОС! :) Ось - дело привыки! Когда исчерпаю возможности Вин, перейду на никс... Пока что считаю что никс- лучший для серверов, для гаджетов(телефоны, планшеты, медиацентры, роутеры/хабы), для легких терминалов к вин-серверам и для банков(где половина работы идет через броузер и ява-программы). Но это по работе... Для программирования - родной средой Делфи является Вин, как и для 1С. Слышал что никс полезен веб-разработчикам, к которым я не отношусь. Ставить 2 среды и переключаться между ними - довольно не приятный процесс. Альтернативой в изучении является эмулятор вроде VMware. Но пока явных преимуществ для программиста не нашел. Признаюсь по той-же причине не могу слезть с Делфи на С++, хотя хочется по чисто "религиозным" мыслям. Я даже свой отладчик-логер (сам разработал для делфи) уже перетащил в Вин-разработку для андроида.

>Начал человек стереотипы свои рушить, выбираться из зоны комфорта в которой, судя по ЯП, провел достаточно много времени,
>так пусть пробует двигаться вперед по всем фронтам, развивается, открывает новые горизонты.
Зачем? чтобы у меня могз вообще расплавился? ;) Да и работу над "обычными" проектами полностью останавливать не хочется. Мечтаю как-нибудь докупить себе еще один комп, поставить рядом и "жить в двух", возможно тогда выберу вторую среду на ПМЖ! А пока предпочитаю читать маны из вин на соседнем маленьком мониторе (у меня ноут с подключенным большим монитором) и не искать "чем же прочитать этот формат" - дежавю, PDF, TXT, DOC, EXEL, HTML, DBF, SQLite, tiff, .... А аналога моего любимого ТоталКомандера в нихксах еще полноценного нет.

Пока что за советы спасибо... Буду вычитывать теорию Java (из книг). Возможно когда разберусь немножко с ява перейду на С++ или Лазарус.


#16
12:39, 1 мар. 2013

Tester64
> А аналога моего любимого ТоталКомандера в нихксах еще полноценного нет.

Тоже хотел про это написать, но не стал. Собственно нормальных аналогов ему даже под Виндой нет.

> Пока что за советы спасибо... Буду вычитывать теорию Java (из книг). Возможно
> когда разберусь немножко с ява перейду на С++ или Лазарус.

Лазарус после Дельфи пойдет как по маслу: язык - тот же (Object Pascal), интерфейс - процентов на 90 такой же. Были раньше проблемы с отладчиком, но в последних версиях вроде как уже что-то есть работающее. И я бы даже сказал, что местами Лазарус превзошел Дельфи.
Удачи!

#17
19:30, 2 мар. 2013

2Trex
6) http://my-it-notes.com/2011/12/how-to-install-apk-programmatically/
Получилось! :) еще раньше научился скачивать файл из сети (есть в сети куча примеров). Очень полезная на этапе отладки штука - обзвонил друзей и сказал "обновите программу я кое-что доработал - проверьте пожалуйста" - и все! Не надо брать каждый аппарат и обновлять программу вручную или обучать этому каждого...

Прелесть Делфи в том, что она учит тому, что не обязательно знать структуру проекта (, названия классов, обязательные классы, связки xml и еще куче обязательного в яве) для того чтобы в нем что-нибудь изменить, какую-нибудь мелочь. Можно найти наборы решений, склеить их и получится готовый проект. Понимание/озарение приходит с годами работы. Думаю даже без понимания структуры проекта Андроида смогу его сильно изменить.

#18
22:28, 2 мар. 2013

Tester64
> Прелесть Делфи в том, что она учит тому, что не обязательно знать структуру
> проекта (, названия классов, обязательные классы, связки xml и еще куче
> обязательного в яве) для того чтобы в нем что-нибудь изменить, какую-нибудь
> мелочь. Можно найти наборы решений, склеить их и получится готовый проект.
> Понимание/озарение приходит с годами работы. Думаю даже без понимания структуры
> проекта Андроида смогу его сильно изменить.

ты неправ. В той части, про которую ты говоришь, дельфи от явы мало отличается. Просто Delphi делает автоматом некоторые вещи (например создает класс приложения), плюс ты его хорошо знаешь, а яву - нет. Поставь NetBeans - он за тебя точно так же сделает класс приложения, классы формы, добавит обработчики кнопок и т.д. Но в любом случае (что Дельфи, что Ява) написать серьезный проект пользуясь только копипастой с интернета вряд ли получится.

#19
1:00, 3 мар. 2013

> дельфи от явы мало отличается. Delphi делает автоматом некоторые вещи
Я имел в виду не это! Простой проект на Делфи с 3-5 окошками ОЧЕНЬ нагляден. Понятна структура программы, связи юнитов/классов. Процедуры/реакторы создаются автоматически и легко проследить кто на что реагирует. Глобальные переменные и константы видны сразу тоже в pas-файлах. В изучаемой мной программе базы создаются (SQL.create) в datebase.xml. Поиск по "datebase" выдал файлов 20, т.к. это оказывается знаменитый класс работы с базами, "datebase.xml" не дал ничего... Почему бы не создать те же create но в ява классе? Это уже высшая математика, равносильная автогенерации класов по шаблонам в Делфи или кодирование кода между маркерами в процессе выполнения в целях защиты или использованию интерфейсов через оле-обьекты... :) А ведь в моем (изучаемом) проекте всего 5-6 формочек, а я понимаю только 1/5 часть связей(и еще 3/5 догадываюсь зная Делфи). Большинство глобальных модификаций вызывают на устройстве и эмуляторе "приложение не отвечает! Подождать/закрыть". Ни кода ошибки, ни описания...

Это напоминает недавно вычитанную мной фразу: "Опытный программист на C++ легко решает любые не существующие в Паскале проблемы." :)

#20
6:33, 3 мар. 2013

Tester64
Я так понимаю месье кроме Дельфи ничего в жизни не пробовал?
Поскольку заявление "Дельфи создан для формошлепства" - это очень сильно!
Просто несколько лет назад поделывал студентам курсовые на C#, C++/CLI и Delphi, и очень от Дельфи бесился. Если в первых двух формы были понятны и более менее наглядны, то простейшая задача - как изменить область заливки таблицы в Дельфи7, была настоящим гемором - Вы наверное, прекрасно знаете. Если это - "удобно", то ТКНИТЕ ПАЛЬЧИКОМ, кто додумался сделать ХУЖЕ?
Специально для дельфи хранил ссылки на три сайта, где это непонятная нормальному разуму дельфийская хрень обьяснялась.

#21
8:02, 3 мар. 2013

Tester64
На самом деле, рассуждаешь типично по-дельфийски. Да, на самом деле, что-то в Дельфи делается проще. Но ява или с# предлагают, как правило, гораздо большую гибкость. Естественно, что при этом увеличивается сложность и немног ухудшается наглядность кода.

#22
18:29, 3 мар. 2013

2 CasDev
Вы не правы... В моей коллекции (лет 5 назад посчитал) больше 10 языков (работы над реальными проектами не меньше чем 3-6 месяцев). В основном прикладные к базам данных.
Если Вы имеете в виду раскраску ЯЧЕЕК таблицы, то это код на 5-10 строк + 1 переключатель в компоненте(могу выложить код). Позволяет используя Canvas рисовать ПРОИЗВОЛЬНУЮ графику в известном прямоугольнике, менять цвет, шрифты, многострочность, склеивать ячейки, задавать толщину и цвет рамки, подкладывать фон.... А можно всегда поискать готовый чужой компонент с подобными функциями или написать с нуля свой! :)

2 Tester64
Об этом и фраза! :) Прелесть Делфи в том что большинство вещей там можно сделать ТОЛЬКО ОДНИМ СПОСОБОМ. Или ну очень сильно изворачиваться чтобы сделать по другому. Поэтому больше времени тратится на структуру общей цели проекта, а не на красоту и оптимизацию кода или мягкость графики. Придется привыкать... Помню где-то встречал "хвастовство" возможностей с++, когда после небольших манипуляций с типами можно сложить два 3х мерных вектора как "a = b + c;". Согласен, кратко, удобно, но следующего читателя кода это введет в ступор и полное непонимание.

#23
21:42, 3 мар. 2013

Tester64
> Если Вы имеете в виду раскраску ЯЧЕЕК таблицы, то это код на 5-10 строк + 1 переключатель в компоненте(могу выложить код). Позволяет используя Canvas
> рисовать ПРОИЗВОЛЬНУЮ графику в известном прямоугольнике, менять цвет, шрифты, многострочность, склеивать ячейки, задавать толщину и цвет рамки, подкладывать фон....
> А можно всегда поискать готовый чужой компонент с подобными функциями или написать с нуля свой! :)
Вы не поверите, но в C# подобное идет "из под каропки", и цвет задается вполне естественными функциями cell.setColor(color) или подобными. Никаких 5-10 строчек кода там и не нужно. Человек, который писал интерфейс UI-компонент на Delphi, с понятием "удобство использования" знаком был очень отдаленно. Я в то время был под очень большим впечатлением... Это ж надо либо иметь особенно извращенный склад ума, либо под имеющийся готовый код (марки "не очень") подгонять интерфейс, а не наоборот.
Причем отнюдь не единичный пример, потому интернет и пестрит хелпами по дельфям. В случае с тем же С# все обычно понятно интуитивно.

> Прелесть Делфи в том что большинство вещей там можно сделать ТОЛЬКО ОДНИМ СПОСОБОМ.
О, это супер! Захотели добавить какую-то новую фичу - а вот выкусите и заново пишите. Знакомо )
Просто не знал что это достоинство языка (в стиле "это не баг - это фича!!!").

Особенно радует читабельность кода. Это вообще пяяяяять!
Все переменные в функции надо объявлять не по месту, а да - повыше. В результате если это какая-то сложная функция с геометрическими вычислениями - читающий код прогер будет открывать код в двух окнах - одно окно с кодом, второе с объявлениями. И радоваться - удобно же!

>Поэтому больше времени тратится на структуру общей цели проекта, а не на красоту и оптимизацию кода или мягкость графики.
А вы точно на C# писали?
Просто ни разу не слышал, чтобы человек, перешедший с Delphi на C#, не удивлялся в стиле "блин - а это тут так просто оказывается!", "Генерики - мечта!" и т.п.

> Помню где-то встречал "хвастовство" возможностей с++, когда после небольших манипуляций с типами можно сложить два 3х мерных вектора как "a = b + c;".
Ну кто же спорит то?
Конечно, совсем же непонятно.
Вот допустим - сравниваем

vector3f a, b, c;

// 1-ый вариант
c = a + b; // ну дофига ж толкований-то! Прям глаза разбегаются!!! Тут тебе и умножение векторов закрадывается, и скалярное произведение, и попросту деление на ноль... Да мало ли какие варианты может придумать мозг, имевший до этого дело с Дельфи?

// 2-ой вариант
с = addVector3f(a, b); // по названию функции понятно, да! И однозначно читабельнее ассемблера! Ура, товарищи!

///
- (vector3f)addVector3f(vector3f a, vector3f b)
{
vector3f c(a);
c.x += b.x;
c.y += b.y;
c.z += b.z;
return c;
}

> Согласен, кратко, удобно, но следующего читателя кода это введет в ступор и полное непонимание.
Если следующий читатель с таким уровнем абстрактного мышления - то таки да, таким и надо давать доступ к коду только в режиме read-only.
Зато истовые джедаи будут писать под каждый тип свою функцию:

addVector2f(vec2f, vec2f);
addVector3f(vec3f, vec3f);
addVector4f(vec4f, vec4f);
Ну и разумеется читабельность повышается просто в разы!!!
А уж если в такую библиотечку потребуется добавить еще и свой тип, все вообще превращается в сказку.

Поэтому наверняка все тупые и поэтому пишут на С++/С#, когда рядом лежит без дела столь прекрасный Дельфи.

В-общем не смешите людей и скорей учите яву )))
Успехов!

>Много лет опыта на Делфи(+1С+php),
Ааааа... - ну в принципе теперь-то все понятно. Оставшимися двумя видимо являются ASM и BrainFuck )))

#24
22:38, 3 мар. 2013

Tester64
> Прелесть Делфи в том что большинство вещей там можно сделать ТОЛЬКО ОДНИМ
> СПОСОБОМ.
Это плюс, когда изучаешь язык (меньше учить - легко преподу проверять), а в реале иногда требуется бОльшая гибкость (правда для этого требуется почитать побольше, чем методичку).CasDev

> Все переменные в функции надо объявлять не по месту, а да - повыше.
Да, это в Дельфи вообще бесит.

#25
23:07, 3 мар. 2013

Tester64
> Прелесть Делфи в том, что она учит тому, что не обязательно знать структуру
> проекта
Ок. Я просто сначала посчитал вас программистом.
Удаляюсь.

#26
6:42, 4 мар. 2013

2 trex
Зря Вы так! :)
Вы когда-нибудь сталкивались с работой программиста 1С?
Вас вызывают на новую фирму (первое знакомство) и говорят нужно чтобы работало так...
А перед Вами крупный завод, на котором до Вас работало не меньше 5 программистов. Каждый перекручивал схему по своему, нарушая общие правила, проводя параллельные виды учета, обходя и разрушая основные. И у Вас всего час-два чтобы заработало! Охватить ВСЮ схему проекта у Вас уйдут месяцы (десятки принципиально не похожих отделов, сотни сотрудников). К тому-же базовую программу (которые ломали местные 5 программистов до Вас) разрабатывал огромный коллектив ПРОГРАММИСТОВ (больше 10-15 человек + дизайнеры, бухгалтера, логисты...) на протяжении многих лет и исходники уже превышают 20-40 Мб чистого кода.
Эх, если бы Вы с нуля пришли на завод и сказали "предлагаю такую схему"... А через 3-4 часа совсем другая фирма, другая незнакомая структура проекта...
Примерно та-же схема с Делфи... перед Вами сотня форм, десяток баз данных, сотня таблиц... Можно конечно отследить ВСЕ связи... но зачем? Перед Вами конкретная задача - найти как было и не поломав, расширить возможности...
Попробуйте подобное провернуть с чужой программой на С++ или Ява... Я уже неделю бьюсь над одними (довольно простыми) исходниками андроид-приложения. До сих пор не понимаю СКОЛЬКО файлов отвечают за дизайн ОДНОЙ формочки с обычными кнопками... Пока насчитал около 14... (надписи, градиенты каждого компонента, картинки, условное отображение обьектов, сложные ректоры нажатий на кнопки, вложенные под-формы для создания закладок, учет размеров экрана и поворота экрана) Но знаю, это еще далеко не конец! :) А формочек в этих исходниках не меньше 8-10...

> Это плюс, когда изучаешь язык (меньше учить - легко преподу проверять)
Все зависит от задачи... Чаще всего извращения в жизни встречаются редко! :) Нужно просто сидеть и "кодить" по запланированной в самом начале проекте схеме, слегка уточная задание, решая обычно мелкие проблемы или не понимая принципов работы языка или ОСи (и зарываясь в "МАНы"/учебники/форумы).

> А вы точно на C# писали?
Никогда не писал!!! И не рвусь! :) Если уж переходить на С, то на С++! В нем хоть возможностей больше - мультиплатформеность. А Все что есть на C# я могу написать и на Делфи(кроме красивого дизайна и микро-размеров программы). А те 5-10 строчек скорее наследие старого графического интерпритатора. Бопланд пыталось внедрить Delphi.Net  - не прижилось! Но там все это было. Просто класы .НЕТ все это включают а VCL нет. но через ТЕ 5 строчек в отдельной обработке я получаю доступ к канвасу, который раскрашиваю КАК ХОЧУ. Стоит войти в эту процедуру/обработчик и все ограничения на рисование снимаются. К тому-же есть КУЧА бесплатных компонентов с таблицами, где это делается так-же, а заодно и сортировка кликом по шапке, прижимание текста к бортикам, выпадающие контролы и многое другое.

> addVector2f(vec2f, vec2f);
> addVector3f(vec3f, vec3f);
> addVector4f(vec4f, vec4f);
Выглядит НАДЕЖНЕЕ и ЛОГИЧНЕЕ чем c = a + b;, хотя и не так красиво/компактно.
Вы уверены, что программист, который был до Вас ПРЕДУСМОТРЕЛ (или сделал без ошибок) c = a - b; ???
А что будет если с = vec3f + vec2f; ??? Нельзя принципиально или забыли предусмотреть

К тому-же в Делфи принято подобные операции заворачивать в классы. Это упрощает и инициализацию (переменная может быть определена в другом классе, а не в верху процедуры/функции)

> Оставшимися двумя видимо являются ASM и BrainFuck )))
Обижаете! :) Правда признаюсь что предпочитал языки связанные с базами данных... Но среди "остальных" были и бейсик, пхп, ява-скрипт, питон,...

Но это опять напоминает "войну языков"! :( И скорее дело привычки чем реально "лучше/хуже". Точно так-же могу сказать что меня бесит что буквы не должны менятьразмер Aaa не равно aAA, но уже смирился и пользуясь "правилами хорошего тона" из 1С пытаюсь придерживаться "разумных" названий переменных - начинать каждое слово с большой буквы (MainStr1). Позднее войдет в привычку и не буду обращать внимание... Еще в яве жутко бесит обязательные ограничения на название классов... В пиноне сильно бесило отсутствие процедурных  скобок {}/begin end... забыл поставить пустую строку/таб/пробел = ошибка! Когда-то пробовал с Делфи перейти на БорландСи - так-же матюкался что код делится зачем-то на шапку (*.h) и тело(*.cpp)...
Сейчас работаю одновременно в 4х языках (ява, делфи, 1С, PHP) и каждый раз матюкаясь переходя с одного языка на другой - руки сами набирают не то что нужно в ТЕКУЩЕМ языке...

#27
9:18, 4 мар. 2013

Tester64
> Но это опять напоминает "войну языков"!
Да, на этом форуме просто много ненавистников дельфи. Не стоит обращать на них внимания.

DekaSoft
> Поставь NetBeans - он за тебя точно так же сделает класс приложения, классы
> формы, добавит обработчики кнопок и т.д.
Для андроида? ну-ну.

#28
10:20, 4 мар. 2013

kipar
Ну конечно, дельфи для андроида подходит куда лучше.

#29
10:27, 4 мар. 2013

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

Страницы: 1 2 3 4 Следующая »
AndroidФорумОбщее

Тема в архиве.