LINUX.ORG.RU

строго типизированный язык
ошибки сведены к 0 теоретически

Кмк, неправильное предположение.

vvn_black ★★★★★ ()

Элементарно, утечки памяти - самое распространенное в Java - посмотри на IDE, которые жрут на старте по 4 Гига. Тема, в общем-то трололо, т.к. Java местами тот еще тормоз, но на серваках она показывает себя относительно достойно, основной конкурент Java на серваках - Go. Он жрет меньше во много раз, но и язык очень «тупой».

menangen ★★★★★ ()

строго типизированный язык, как с++

Видимо ты хотел написать «в отличие от C++», поскольку C++ это слабо типизированный язык.

Какие подводные камни будут при написании крупного(относительно) приложения на андроид?

Наркомания с жирнющими саппорт-либами.

EXL ★★★★★ ()

строго типизированный язык, как с++

Похудей.

ошибки сведены к 0 теоретически

Особенно когда DI на xml конфигурируешь.

Какие подводные камни будут при написании крупного(относительно) приложения на андроид?

Монкеи которые будут блокировать UI тред.
Экспоненциальный рост сложности в случае неиспользования best practices.

Deleted ()

Не слушай никого в этом треде. Все школьники или теоретики. Самые большие проблемы с java это баги в JVM. Эти олухи сломали номер 8, объявили 9 и 10 устаревшими и выкатили забагованный кусок говна 11 с обещаниями пофиксить баги летом 2019. Это еще + к банальной лицензии оракл жабы.

Оракл жиденько дрищет в штанишки на главной площади software development.

Deleted ()

с++

ошибки сведены к 0 теоретически

как это связано? неправильный алгоритм (в том числе неправильный алгоритм работы с памятью) это вполне себе реалии жЫзни

takino ★★★★★ ()
Ответ на: комментарий от menangen

Я использую phpStorm он на java, памяти жрет около 1-.1.5 гага на старте и больше не растет. Но больше интересует на андроиде

gobot ★★★★ ()
Ответ на: комментарий от EXL

Ну ясен пень что С более типизирован, чем С++.

Наркомания с жирнющими саппорт-либами.

«саппорт-либами» - это я уже знаю, но вроде не достает особо, все автоматом. Но в этом и круть - работает на всех версиях, начиная от 4.3(что я сам тестировал)

gobot ★★★★ ()
Ответ на: комментарий от gobot

это я уже знаю, но вроде не достает особо, все автоматом.

А потом надо бэкпорт на версию -0.1 от минимально поддерживаемой, и начинается головная боль

takino ★★★★★ ()

не, ну уж если так хочется.. пиши, чоужтам.

Deleted ()
Ответ на: комментарий от Deleted

Монкеи которые будут блокировать UI тред

Это?

onPostExecute()

gobot ★★★★ ()
Ответ на: комментарий от gobot

естественно, что в одних языках легче выстрелить себе в ногу, нежели в других.

takino ★★★★★ ()

строго типизированный язык, как с++ и ошибки сведены к 0

это сильно!

thomasbug ()

Можно ли в Java написать криво программу

Да

Какие подводные камни будут при написании крупного(относительно) приложения на андроид?

Боль, депрессия, смерь.

ya-betmen ★★★★★ ()
Ответ на: комментарий от gobot

java кодить проще, но дольше

ты кстати посмотри C#. по нему документация высшего качества (такая же как по java собственно - лучшая в индустрии), но там есть decimal, есть struct (если мне память не изменяет), после женериков не надо кастить. и самое главное там var есть - это очень удобно, оно по правой части (будь это литерал, new или вызов) само определяет. linq там интерсная штука, крутить вертеть коллекции можно в терминах SQL так сказать.

там еще много чего. я сам на c# никогда не писал (впрочем как и на джаве). просто как-то давно одну мелкую программу делал - заметил эти особенности у C#. студия у них бесплатная Community - очень удобная, автокомплит, мелочи всякие сама сразу находит и подсказывает. но студия только под винду. к ней есть какие-то примочки от intellij, но я ради программы на 200 строк не ставил их.

thomasbug ()

Вроде как строго типизированный язык, как с++ и ошибки сведены к 0 теоретически

c++? строго типизированный язык? да ви шутите

я уже молчу что 99.9...% всего самого адски забагованного говнокода написано на с++ и java

annulen ★★★★★ ()
Последнее исправление: annulen (всего исправлений: 1)
Ответ на: комментарий от Deleted

Монкеи которые будут блокировать UI тред.

а что за «Монкеи»?

и почему мейн-тред блокировать? в андройде же вроде потоки можно обычные создавать без ограничений. а внури по желанию эвент луп даже можно лупером.

thomasbug ()
Ответ на: комментарий от gobot

а ну тогда да.

кстати посмотри там какой котлин - новый язык. я не читал про него даже, но наверняка они всё можно было всё украли из c#.

хотя был еще какой-то ксамарин, но я про него не смотрел ничего.

thomasbug ()
Ответ на: комментарий от gobot

Ну ясен пень что С более типизирован, чем С++.

И там и там типизация слабая. Сильная типизация - это к языкам с семантикой Pascal/Modula-2: Java, C#, Scala, Go.

LongLiveUbuntu ★★★★★ ()
Ответ на: комментарий от thomasbug

Нет времени на это, интересует толь ява на андроид

gobot ★★★★ ()

ошибки сведены к 0

О да, NPE - любимая ошибка Java-разработчика.

Можно посмотреть на Kotlin, там вроде by-design решена эта проблема.

hippi90 ★★★★★ ()
Ответ на: комментарий от gobot

Xamarin есть, пишешь все точно так же, но на c#

anonymous ()
Ответ на: комментарий от hippi90

Совместимость с JVM, боюсь, не позволит такое вытворить.

Фундаментально это решено в rust.

BattleCoder ★★★★★ ()
Ответ на: комментарий от LongLiveUbuntu

И там и там типизация слабая.

Если оставаться в рамках определённого поведения, то типизация сильная. Почти любой reinterpret_cast и memcpy из объекта одного типа поверх другого — UB.

А рассуждать какая типизация при UB смысла не имеет.

Сильная типизация - это к языкам с семантикой Pascal/Modula-2: Java

Наличие ЛЮБЫХ неявных преобразований делает типизацию слабой. В Java int -> float может преобразовываться неявно.

anonymous ()
Ответ на: комментарий от RazrFalcon

Ну вот если считать, что в Java с неявными преобразованиями типизация сильная, то и в C++ она сильная.

Либо ни там, ни там.

anonymous ()
Ответ на: комментарий от gobot

потому, что клиент внезапно решил, что надо -0.1?

takino ★★★★★ ()

Криво программу можно написать на чем угодно. Ни один язык программирования никогда не сделает невозможным написание неправильного кода, хотя бы потому что это сильно сузит его применимость. То, что является неправильным в одном случае будет являться оптимальным вариантом в другом. Задача программиста в том и заключается, чтобы понять какой из подходов будет правильным в каком случае. А то что в жаве прямой работы спамятью нет, так это далеко не единственный источник ошибок. В некоторых случаях это даже сложнее, потому как все ресурсы надо освобождать вручную, а не просто пихать все в деструктор с тем чтобы они все сами освободились вместе со смертью объекта.

morse ★★★★★ ()

Можно ли

Можешь начинать конкатенировать строки плюсами (хотя судя по вопросу, не исключено что ты так и делаешь)

Dred ★★★★★ ()

Удваиваю за npe. Пиши на пыхе лучше.

crutch_master ★★★★★ ()
Ответ на: комментарий от gobot

Пример говнокода что ли? Корпоративщина и проприетарщина всех мастей

annulen ★★★★★ ()

Можно ли в Java написать криво программу?

Сдуру и хер сломать можно.

kravzo ★★ ()
Ответ на: комментарий от Deleted

Какая ещё java 8, когда 90% софта написано на java 6, особенно, банками. И они даже не чешутся что-то апгрейдить.

menangen ★★★★★ ()

Ну как вариант, там может быть вызов функции, которая выполняет консольные команды, а ей в параметр можно передать ту самую печально известную команду, которая всё стирает

russian-turist-2019 ()

Какие подводные камни будут при написании крупного(относительно) приложения на андроид?

Раз постановка вопроса стоит так, то практически все из возможных будут.

ioway ()

Вроде как строго типизированный язык, как с++ и ошибки сведены к 0 теоретически. Какие подводные камни будут при написании крупного(относительно) приложения на андроид?

Основным подводным камнем я вижу кашу у вас в голове относительно того, что такое язык программирования со строгой типизацией. Но писать приложения под Android это не должно помешать.

Virtuos86 ★★★★★ ()
Ответ на: комментарий от menangen

А зачем им переписывать. Один из КРУПНЕЙШИХ банков моего региона ОФИЦИАЛЬНО говорит пользователям Банк Клиент установить СТАРЫЙ FireFox. И люди дают им деньги.

dem ★★ ()

Какие подводные камни будут при написании крупного(относительно) приложения на андроид?

Не знаю, как на Андроид, но в одном жирном проекте, где я участвовал, легаси-код был вида:

PreparedStatement st2 = con.prepareStatement("SELECT * FROM `recitems` WHERE `rid`=" + id);
                ResultSet rset2 = st2.executeQuery();
String query = "SELECT `" + ret_field + "` FROM `" + table + "` WHERE " + where + " LIMIT 1;";

Или, что не менее весело, вида:


PreparedStatement statement = con.prepareStatement("INSERT INTO game_log (serv_id, act_time, log_id, actor, actor_type, target, target_type, location_x, location_y, location_z, etc_str1, etc_str2, etc_str3, etc_num1, etc_num2, etc_num3, etc_num4, etc_num5, etc_num6, etc_num7, etc_num8, etc_num9, etc_num10, STR_actor, STR_actor_account, STR_target, STR_target_account, item_id) " + "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);");

// ...

                                statement.setInt(14, etc_num1); //etc_num1, 
                                statement.setInt(15, etc_num2); //etc_num2, 
                                statement.setInt(16, etc_num3); //etc_num3, 
                                statement.setInt(17, etc_num4); //etc_num4, 
                                statement.setInt(18, etc_num5); //etc_num5, 
                                statement.setInt(19, etc_num6); //etc_num6, 
                                statement.setInt(20, etc_num7); //etc_num7,

                                statement.setInt(21, etc_num8);
                                statement.setInt(22, etc_num9);
                                statement.setInt(23, etc_num10);

// ...

Слабо пересчитать потом все позиции в списке значений? :)

KRoN73 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.