Вопросы и ответы по программированию.

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
testncrash
Капитан
Капитан
Сообщения: 459
Зарегистрирован: 25.02.2007
Благодарил (а): 22 раза
Поблагодарили: 33 раза
Контактная информация:

#376 Сообщение 31.10.2014, 00:46

Что мне нравится например в RubyMine:
рефакторинги, генерация стандартных файлов проекта, нормальная интеграция с фреймворками модульного тестирования, удобно генерируются модели, контроллеры, постройка зависимостей, кодекомлишен, референс на стайл гайд, .. sexy themes :) Я на ruby пишу. Сode::Blocks год как уже не пользуюсь, но очень сомневаюсь, что его реально допилить до вменяемого состояния, чтоб было удобно работать с rails.

Это все есть в кодеблокс?

P.S. Cчитаю большим плюсом Intellij, что она на яве), поэтому даже такой нуб как я сможет написать себе какой-нить полезный плагин, например для автоматического деплоя .

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#377 Сообщение 01.11.2014, 18:23

Я бы рекомендовал подумать в первую очередь о компиляторе и системе сборки, а уже потом об IDE. Например, можно использовать cmake, и любой компилятор из поддерживаемых. Можно использовать qmake - Qt'шный сборщик - он поставляется вместе и Qt и и его IDE - Qt Creator, поэтому хорошо интегрирован с ними. Собирать умеет также разными компиляторами. Есть ещё QBS и SCons, про них ничего конкретного сказать не могу, но они тоже гибкие, и вроде как, решают проблему долгой сборки больших проектов (в смысле, позиционируются более быстрой заменой CMake).
Кое-кто всё ещё сидит на голом (или почти голом) make (мы все знаем один такой проект ;)).
Из IDE-шек - не важно, в принципе, какую выбирать, главное чтобы с кодом можно было потом работать и без (или с другой) IDE. То есть, если работаешь в Visal Studio, но бездумно используешь стандартный workflow и не имеешь понятия как оно там внутри выполняется и собирается - это плохо, потому что даже если у тебя весь код написано полатформо-компиляторо-независимо, ты всё-равно не сможешь его нигде собрать, потому что жмёшь на кнопочку но не знаешь что она делает "под капотом". С другой стороны - можно изучить как работает система сборки студии, и понять что нужно делать на любой другой комбинации компилятора/IDE - и, если, что уже можно собирать проект почти где угодно. Но лучше использовать CMake - описываешь компиляцию, как ты хочешь чтобы она проходила (а не как делает твоя плохонастраиваемая в этом плане IDE по-умолчанию), а потом используешь эту систему на любой платформе. CMake умеет генерировать проекты для и Visual Studio и CodeBlocks (и даже XCode), а также поддерживается QtCreator-ом как нативный проект. Не знаю как обстоят дела с Eclipse, IntelliJ и других поделках на Java - но если они умеют собирать из Makefile-ов, то и они тоже. А, хотя нет, знаю про NetBeans - он тоже умеет CMake.
Кстати, моё мнение по поводу IDE на Java довольно негативное. Да и вообще по поводу Java - есть куча других языков, которые доказали, что концепция, на которой построен этот язык работает. Но, почему-то, конкретно Java (точнее, конкретно её рантайм) - это просто былинная ошибка. При этом, синтаксически и лексически сам язык очень удобен. Другими словами - язык хороший (в своей основе), но реализации просто отстой. И, самое главное, его уже не поправишь без потери обратной совместимости. А конкретно про IDE на Java - во-первых они на Java, во-вторых они сделаны Java-программистами, в третьих - ими реально можно пользоваться как и всеми остальными IDE, если не учитывать первые два пункта. Свистелки в них стоят обычные, такие везде есть, да и везде можно и самому сделать, если нужно (все IDE сейчас расширяемые).
Кстати, Sublime Text и Atom неплохо подходят и для работы с C++ (хоть они и медленные, но не медленнее java, так что норм). Сам пользуюсь, когда нужно что-то написать на коленке на C++.
Да, я уже довольно долгое время не пишу не кроссплатформенный код вообще. Чаще всего использую CMake + Sublime Text или QtCreator. Но и все другие многочисленные комбинации.
И ещё - C++ Builder и другие поделки от борланда - это не настоящий C++ просто плохо. Кроме Delphi - вот он нормальный, правда громоздкий (синтаксис), но зато простой.

PS: RubyMine и все другие IDE под Ruby on Rails не нужны. Я слышал, сейчас людей обучают писать под ROR и с использованием IDE - но это только потому, что для нормальной работы людям нужны навыки работы с командной строкой (а обучают, в основном, неграмотных первокурсников или ещё кого похуже). IDE - не ruby-way вообще.

Добавлено спустя 8 минут 33 секунды:
А с OpenGL лучше всего играться на C. Потому что его API он существует только в виде C-хедеров, всё остальное -
это уже всякие обвязки. Играться с обвязками смысла нет, потому что они всегда вносят свои специфические абстракции, что есть плохо для понимания самого API.

Добавлено спустя 10 минут:
Кстати, есть ещё Microsoft.Build. Он-же xbuild от Mono. Я им пользуюсь в составе UE4 - их UBT основан как раз на моновском Microsoft.Build. Вроде работает неплохо и довольно гибко - по принципу действия вроде похож на SCons, но это на первый взгляд.

testncrash
Капитан
Капитан
Сообщения: 459
Зарегистрирован: 25.02.2007
Благодарил (а): 22 раза
Поблагодарили: 33 раза
Контактная информация:

#378 Сообщение 01.11.2014, 18:30

MOZGIII
Возможно оно так и есть. Но тут еще дело вкуса, пользоваться терминалом я умею), поначалу учился без IDE. Вот, что из себя представляет моя кодинг машина: Win7->VMware->Linux Mint(Сinnamon)->Java IDE ), ресурсы благо позволяют такие глупости.

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#379 Сообщение 01.11.2014, 20:21

testncrash » Ноябрь 1st, 2014, 7:30 pm писал(а):CMake умеет генерировать проекты для и Visual Studio и CodeBlocks (и даже XCode), а также поддерживается QtCreator-ом как нативный проект. Не знаю как обстоят дела с Eclipse, IntelliJ и других поделках на Java - но если они умеют собирать из Makefile-ов, то и они тоже.
CLion uses the CMake project model. Any CMake-based projects can be opened easily and with no additional configuration in CLion.
А на практике, оно пока ничего другое еще не поддерживает, у них в багтрекер голосование идет про то какую систему им стоит поддержать следующей.
MOZGIII » Ноябрь 1st, 2014, 7:04 pm писал(а):Но, почему-то, конкретно Java (точнее, конкретно её рантайм) - это просто былинная ошибка.
А ты dalvik видел? По сравнению с ним hotspot весьма и весьма неплох

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#380 Сообщение 01.11.2014, 20:38

MOZGIII » 01 ноя 2014, 18:04 писал(а):IDE - не ruby-way вообще.
А что руби-вэй? Похоже они пытаются выпендриться в любом аспекте. Самый медленный код, самый ужасный синтаксис.. Сколько наград!
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#381 Сообщение 01.11.2014, 21:55

Pr0Ger
Dalvik видел, и art. Ну, лучше чем hotspot, да. Да и Java 8 неплоха, по сравнению с тем, что было, конечно. Но всё равно, в Java до сих пор есть вещи, которые сильно тормозят эту платформу "просто так", появившиеся там потому, что никто не знал тогда, что это будет проблемой. Java ведь не вся плохая... Может это и голословно, но я бы сказал, что .NET - это почти также Java, но с учтённым опытом и без её проблем. Меня в основном напрягает модели памяти современных jre, ну и в остальном по-мелочи. А ещё напрягают странные люди, которые говорят "Java такая-же быстрая как C++!!!", лол. Ну это я так, к слову. Если скорость Java с языками вроде Python или Ruby сравнивать - то вполне себе законное сравнение.


NiGHt-LEshiY
Ничего не медленный и не ужасный. А выпедрится любят, да, но это все любят.
На самом деле я хотел написать про ruby-way. Вообще, есть даже такая книжка (http://www.amazon.com/gp/product/067232 ... 0672328844).
Если говорить в контексте IDE, и среды разработки (в целом, а не "интегрированной"), то тут ruby старается просто дать максимальную гибкость. Очень популярны unix-овые парадигмы о том, что одна программа - одна функция. Поэтому, идеологически, текстовый редактор лучше IDE. Реально получается так, что люди берут мощный текстовый редактор и допиливают его до функционала, который обычно и предоставляется IDE-шками. Но тут основная ценность в том, что начинают все с редактора, который только редактирует текст, а потом уже добавляют что нужно. А не как с IDE - берут редактор (кстати в IDE именно возможности редактирования текста обычно довольно посредственные) плюс готовый набор фишек, которые IDE уже умеет делать. Ну, это всё, конечно хорошо, но в программировании вообще, и в ruby в частности, не существует какого-то универсального workflow, который можно было бы удобно заложить в IDE. Поэтому, либо получится IDE, которое умеет больше, чем нужно в рамках одного workflow (чтобы охватить множество возможных вариантов использования), либо которая заставляет тебя делать так, как в IDE предусмотрено. На мой взгляд, если с первым ещё можно жить, то второе - это большая проблема. Собственно, эта проблема IDE вообще, и портит всю малину в ruby разработке.
Ну и ruby-way - это делать много чего в терминале, а код редактировать в мощном текстовом редакторе. И выпендриваться где только можно. %)
Насчёт скорости ещё раз. Ну, Ruby очень медленно выполняется, это да. Зато на нём быстро и просто писать. Но медленный. Но никто вроде и не говорил что он такой же быстрый, как C++ (а вот Java...). Так что если хочется что-то написать - это ещё вопрос - на что лучше ориентироваться - на скорость программирования, скорость выполнения или что-то ещё.

Кстати, по поводу Java. Есть же ещё куча языков, которые компилируются под JRE: Clojure, Scala и всё такое. Так вот, они страдают от той-же проблемы, что и Java. Но не в той-же мере, потому что "изобрели" эти проблемы авторы как раз Java, и в этом я их виню больше, чем тех, кто просто использует "сломанные" рантаймы. Нет, ну правда! Java тут уже не первый день, и она всё ещё сломана. Not cool.

Добавлено спустя 1 минуту 52 секунды:
Pr0Ger
Я так понимаю, CLion - это специально заточенная IDE под CMake (из названия)?

Добавлено спустя 5 минут 51 секунду:
Хм, если подумать, IDE - это просто текстовых редактор и набор утилит, впихнутых в него. В ruby утилиты традиционно предоставляются сразу фреймворками в виде cli. И сейчас много где так, да почти везде. Зачем вообще нужны IDE, кроме как для запуска тех-же самых консольных утилит через GUI? Если они сами генерируют код по каким-то там своим шаблонам (а с них станется, разработчики же хотят что-то функциональное сами написать), то IDE может может жить отдельно от нативной среды разработки, и в этом случае она вообще сломана. И редакторы в IDE обычно даже мультикурсора не имеют. Короче, IDE - это, похоже, что-то виндовое, нафига оно вообще надо.

testncrash
Капитан
Капитан
Сообщения: 459
Зарегистрирован: 25.02.2007
Благодарил (а): 22 раза
Поблагодарили: 33 раза
Контактная информация:

#382 Сообщение 01.11.2014, 22:24

MOZGIII » Сб ноя 01, 2014 9:55 pm писал(а):
...
На самом деле я хотел написать про ruby-way. Вообще, есть даже такая книжка (http://www.amazon.com/gp/product/067232 ... 0672328844).
Если говорить в контексте IDE, и среды разработки (в целом, а не "интегрированной"), то тут ruby старается просто дать максимальную гибкость. Очень популярны unix-овые парадигмы о том, что одна программа - одна функция. Поэтому, идеологически, текстовый редактор лучше IDE. Реально получается так, что люди берут мощный текстовый редактор и допиливают его до функционала, который обычно и предоставляется IDE-шками. Но тут основная ценность в том, что начинают все с редактора, который только редактирует текст, а потом уже добавляют что нужно. А не как с IDE - берут редактор (кстати в IDE именно возможности редактирования текста обычно довольно посредственные) плюс готовый набор фишек, которые IDE уже умеет делать. Ну, это всё, конечно хорошо, но в программировании вообще, и в ruby в частности, не существует какого-то универсального workflow, который можно было бы удобно заложить в IDE. Поэтому, либо получится IDE, которое умеет больше, чем нужно в рамках одного workflow (чтобы охватить множество возможных вариантов использования), либо которая заставляет тебя делать так, как в IDE предусмотрено. На мой взгляд, если с первым ещё можно жить, то второе - это большая проблема. Собственно, эта проблема IDE вообще, и портит всю малину в ruby разработке.
Ну и ruby-way - это делать много чего в терминале, а код редактировать в мощном текстовом редакторе. И выпендриваться где только можно. %)
Насчёт скорости ещё раз. Ну, Ruby очень медленно выполняется, это да. Зато на нём быстро и просто писать. Но медленный. Но никто вроде и не говорил что он такой же быстрый, как C++ (а вот Java...). Так что если хочется что-то написать - это ещё вопрос - на что лучше ориентироваться - на скорость программирования, скорость выполнения или что-то ещё.
...
Надо будет прочитать "The Ruby Way", много кто про нее пишет, стало интересно. Я вообще-то 3rd эдишен ждал, скоро на полках должна быть. Надеюсь хоть Sublime Text это рубивэй :D

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#383 Сообщение 01.11.2014, 22:46

MOZGIII » Ноябрь 1st, 2014, 10:48 pm писал(а):Dalvik видел, и art. Ну, лучше чем hotspot, да.
Например лимитом в 64к методов?
MOZGIII » Ноябрь 1st, 2014, 10:48 pm писал(а):Может это и голословно, но я бы сказал, что .NET - это почти также Java, но с учтённым опытом и без её проблем.
...и без кроссплатформенности
MOZGIII » Ноябрь 1st, 2014, 10:48 pm писал(а):Есть же ещё куча языков, которые компилируются под JRE: Clojure, Scala и всё такое. Так вот, они страдают от той-же проблемы, что и Java.
Я так и не понял, в чем ее проблема?
MOZGIII » Ноябрь 1st, 2014, 10:48 pm писал(а):Я так понимаю, CLion - это специально заточенная IDE под CMake (из названия)?
Нет, это Jetbrains обещали сделать IDE для сишки и сделали, пока еще бету. Ну и первая билд система оказалась Cmake, у них там в бложике есть объяснение почему с нее начали.
MOZGIII » Ноябрь 1st, 2014, 10:48 pm писал(а):Зачем вообще нужны IDE, кроме как для запуска тех-же самых консольных утилит через GUI?
Дебаггер, не?

testncrash
Капитан
Капитан
Сообщения: 459
Зарегистрирован: 25.02.2007
Благодарил (а): 22 раза
Поблагодарили: 33 раза
Контактная информация:

#384 Сообщение 02.11.2014, 00:07

Pr0Ger
Что мешает использовать дебаггер из текстового редактора? Или кто-то еще кодит в блокноте от мелкомягких?

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#385 Сообщение 02.11.2014, 01:21

testncrash » Ноябрь 2nd, 2014, 1:07 am писал(а):Что мешает использовать дебаггер из текстового редактора?
Предлагаешь ручками вводить команды для lldb?

testncrash
Капитан
Капитан
Сообщения: 459
Зарегистрирован: 25.02.2007
Благодарил (а): 22 раза
Поблагодарили: 33 раза
Контактная информация:

#386 Сообщение 02.11.2014, 01:31

Как вариант: https://github.com/gilligan/vim-lldb . Ну или самому написать для своего любимого редактора, питон выглядит не сложным)

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#387 Сообщение 02.11.2014, 02:41

Pr0Ger
Дебаггер - это да. В принципе, его и в текстовый редактор можно встроить, но нормальных реализаций я не видел. Так что да, как GUI к дебаггеру IDE очень даже хороши. Наверное, я сам пользуюсь ими только когда нужно что-то отладить. Забыл, забыл.
Pr0Ger » Вчера, 21:21 писал(а):А ты dalvik видел? По сравнению с ним hotspot весьма и весьма неплох
Я прочитал не так, понял наоборот %)

Субъективно, dalvik работает шустрее, чем hotspot. Но тут есть проблема, и заключается она в том, что я не сравнивал работу dalvik и hotspot на одной платформе, или даже на похожих. Не знаю как они бы себя показали на честном бенчмарке.
Однако, я не знал про лимиты на количество методов в далвике, и, очень может быть, что в этом кроется секрет его субъективной высокой производительности (лимит на методы - меньше нужно памяти - ??? - profit... потом подумаю над этим ещё)... Мда, а ещё задачи разные.

Проблема в эээ... Вообще так просто не опишешь. Если коротко - там что-то про то, как представляются хипы. Я давно не готовил Java, и не знаю как там сейчас всё, вроде как в 8 после мёрджа с JRockit с этим дела получше. Но если реально интересны детали - можно погуглить, тема популярная, даже на конференциях разных рассматривалась, по есть даже можно по ютубу поискать. Вроде даже сами разработчики как-то на эту тему рассуждали...

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#388 Сообщение 02.11.2014, 11:24

testncrash » Ноябрь 2nd, 2014, 2:31 am писал(а):Ну или самому написать для своего любимого редактора, питон выглядит не сложным)
Ага, а потом написать поддержку шаблонизаторов, потом написать поддержку ORM, потом написать поддержку интеграции между разными дебаггерами (например IDEA умеет дебажить смесь из Java и JavaScript, или например чистого Python и Cython (который на самом деле сишный код и выполняется уже в виде бинарника)). А потом чисто случайно обнаружить, что работал полгода за 200 баксов, которых стоит IDEA

MOZGIII
А еще например работа с VCS и всякие интерфейс билдер.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#389 Сообщение 02.11.2014, 17:09

Pr0Ger
Я для работы с git пользуюсь обычно терминалом. Ну, или специальными дискретными GUI типа gitk, git-cola и тп. Ещё TortoiseGit под виндой. Так что я не разделяю такую точку зрения. Разве что использовать IDE для мёрджа, в случае какого-то специфического кода.
А насчёт интерфейсов - ну, тоже, в основном. Но для Qt, например, есть Qt Designer - отдельная программка специально для построения интерфейсов...

Кстати, я тут подумал - на самом деле, самые популярные IDE не на Java - это XCode под Mac и Visual Studio под Windows. Так что, к вопросу об IDE - если всё-таки хочется IDE, то лучше всего будет начинать разбираться с ними. Мне лично ещё Qt Creator нравится.

Аватара пользователя
Pechen
Капитан
Капитан
Сообщения: 312
Зарегистрирован: 25.10.2009
Благодарил (а): 106 раз
Поблагодарили: 449 раз
Контактная информация:

#390 Сообщение 09.11.2014, 18:05

вопрос следующий - почему рвется соединение пхп с mysql? есть класс, в его констракте прописано соединение и присвоено переменной. методы класса используют эту переменную для отправки данных. через пару минут соединение рвется. если содержимое констракта распихать по методам соединение не рвется, но это(как я понимаю) не грамотно.

Ответить Вложения 1