LINUX.ORG.RU

Какой язык выбрать из Java, C++, C#, Kotlin?

 , , ,


1

4

Всем привет! Я решил изучать программирование и посмотрел видео о языках. Мне понравились 4 языка: Java, C#, C++, Kotlin. C++ потому что он работает на уровне железа и на нём можно писать интересные и сложные штуки; Java потому что на нём можно писать банковские приложения и у него больше всего вакансий; C# потому что он похож на Java, но намного проще; Kotlin потому что если знаешь Java, то знаешь и Kotlin, и на нём можно писать под мобильные устройства. Что бы вы посоветовали выбрать?

Перемещено hobbit из general

Ответ на: комментарий от MOPKOBKA

Ну на Scala все покороче будет:

val d: BigDecimal = (a + b) / c * BigDecimal(2) + BigDecimal(100)

final case class CustomerAddress(
  var customerStreetNumber: Int,
  var customerStreetName: String,
  var customerAptNum: Int
)

В Java уже Record-ы добавили BTW. Было бы неплохо, чтобы и дальше рутину убрали б. Но тут главное вовремя остановится, чтоб язык не сильно заумным стал.

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

Как стать хэкером. Эрик С. Рэймонд

Статья не теряет своей актуальности. Python, C, Perl и LISP - из этого списка я бы только Perl не рекомендовал (он только для ценителей). Вместо него как раз можно Java какую изучить. К Lisp в пару просится Haskell, чтобы повернуть мозги и увидеть еще один способ программирования.

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

Использовать «var» тут не надо - сломаешь эквивалентность и хеш-код. Такой объект противопоказано будет помещать в контейнеры, особенно, в хеш-таблицы. Мы на собеседованиях всегда обсуждали этот момент (ну, я и многого другого любил спросить еще).

Кстати, топик-стартер, вот котлин похоже выглядит. Авторы котлина очень и очень многое взяли из Скалы. Но как я тебе уже пару раз писал выше (топик-стартеру), не знаю, какие есть учебники по котлину для новичков. А так, котлин прямо хорош (но я бы взял scala 3 для себя)

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

while (1){
	std::time_t result = std::time(nullptr);
	if("default"==input1){
		switch(input){
			case "full":set_full_time(&result);break;
			case "not_full":set_hms_time(&result);
		}
	}else if("tabletki"==input){
		set_timer_tab(&result_tab, std::stoi(input1), &count);
		if (count == 5)	break;
	}
	Sleep(1000);
	system("cls");
qulinxao3 ★★
()

Всем привет! Я решил изучать программирование

Знаете, программисты учатся всю жизнь и каждый день.
Такая это профессия.

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

Python, C, Perl и LISP - из этого списка я бы только Perl не рекомендовал (он только для ценителей).

Перл хорош тем, что там кишки просвечивают и хорошо видно как на самом деле работают динамические языки. Разница между ссылками и значениями, между compile time и run time, неприглядная сущность ООП. Вот это всё в питоне замаскировано сахаром. При этом перл достаточно высокоуровневый, и там не придется заниматься байтодрочерством. Ну и книга Ларри Уолла прекрасна. Perl Cookbook тоже классика жанра.

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

я все понял, вы крутые все знаете, но я так ничего и не выбрал((((

Предлагают в треде Java, C#, C++. Котлин не ругают, но и не предлагают.

Смотри с каким ЯП можно в твоем городе устроиться на стажировку/неполный рабочий день. Или бери любимый язык преподавателя.

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

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

ну если Python через

https://docs.python.org/3/tutorial/index.html (который для уже умеющих в «процедурное» именно как второй язык - достаточно быстро про id и прочие потроха )

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

perl хорош тем что вынуждает быть аккуратным в заклинаниях

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

Так не пишет ни кто, пишут: this.customerStreetNumber = value

А, еще длиннее пишут? Ну извини, не могу комментарий отредактировать. Дальше ты про инструменты кодогенерации пишешь, это было в моем комментарии, добавить мне нечего.

Сравнивать манипуляции с интами(?) и с числами с бесконечным количеством знаков некорректно.

Сравнение очень корректное, в COBOL точная BCD арифметика произвольной длинны. В Java нету BCD арифметики, но BigDecimal справляется с этой задачей. По хорошему, во втором примере я должен был вместо Integer тоже BigDecimal поставить.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 3)
Ответ на: комментарий от rukez

ты можешь написать так же как на коболе (с математическими операторами или прямым доступом к переменным)

Не могу, в Java операторы есть для Integer, Float, первый без точки, второй с потерей точности, а в COBOL как я уже написал, произвольная длинна BCD арифметики.

все обернутое геттерами/сеттерами легко оборачивается как рефлексией так и всякими мудреными фактори

Ага, выше еще про генератор IDE написали, это все было отраженно в моем комментарии, без сторонних инструментов писать на этом просто невозможно. Причем сторонние инструменты еще могут быть у каждого проекта свои, кто то генерирует, кто то использует рефлексию, кто то IDE.

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

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

Вообще если говорим про сеттеры геттеры, как так получается, что с одной стороны Java программисты говорят «ну сгенерируй просто каждый набор getter/setter в любой структуре, и потом обновляй его, не забывая при измении структуры» и это Ок, и при этом на защиту getter/setter они встают с позиции «ну не сгенерирует же тебе IDE getter/setter если у тебя переменная структуры меняется в разных местах по коду, а ты захотел добавить дополнительное поведение к этому» ???

Ну и к примеру, взял я через getCobol21c() объект JavaLanguage, и теперь сделал JavaLanguage.setName(«ya ne cobol»), помогли в таком случае getter/setter?

можно писать коротко и прямо

Невозможно, попробуй перепиши кратче чем в COBOL мои примеры.

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

Не могу, в Java операторы есть для Integer, Float, первый без точки, второй с потерей точности

Не очень понял претензии - если тебе нужен объект как переменная то есть и Long и Double - первый длинный, второй точный
Если ты хочешь примитивы то есть long, int, float, double и тп. - это чисто классические примитивные переменные как в коболе или си.
У Явы с примитивами есть ряд вроде бы проблем:

  • из коробки нет беззнаковых переменных
  • нельзя жонглировать длиной примитива - есть байт, есть инт, по середине нет 16ти битных, например
  • нельзя взять и скопировать память куском из объекта в объект сделав независимый клон объекта по аналогии с мемкопи структуры Однако (с) в реальном мире Явы беззнак лютая редкость и 16бит регистры не существуют (т.е. один фиг 16бит займет нативные для системы 32 бита минимум), а вот клонирование объектов - да, боль (надо либо пробежаться по всем филдам скопировав их по очереди, и кстати тут геттеры подсобят особенно если дробить синхронизацию в многопотоке, либо пробежать рефлексией)

Ага, выше еще про генератор IDE написали

Я не про написание оберток а про использование - в Яве много инструментов которые умеют в обернутое геттерами/сеттерами при динамическом создании объектов - собственно те же фабрики частично про это - тебе не надо перебирать условия по типам объектов а достаточно внятно разложить функционал в геттерах/сеттерах при наследовании

Причем сторонние инструменты еще могут быть у каждого проекта свои

Инструменты в теории могут быть разными (хотя это просто генератор шести строк с заменой имени переменной 😁) но для г/с результат типизирован

Да, обычно изменение начинают с полного пересоздания дерева наследования, потому что оно нерасширяемо

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

если у тебя переменная структуры меняется в разных местах по коду

В Яве нет структур, есть объекты - переменная такая же часть объекта как и функции (в этом отличие от структуры) т.е. переменную для своего же удобства не надо менять вне объекта руками если она обернута г/с - там спецом слово private для этого есть чтоб запретить прямое обращение не из класса объекта. Но вообще это не мешает работать самим г/с, это мешает только тебе - ты можешь вызвать сеттер установив переменную в 1, потом руками ее установить в 2 и геттер тебе вернет 2.
И кстати задав ей private ты сразу найдешь все обращения не из класса и можешь сразу их заменить на г/с

Ушел на хоккей, вечером может допишу 😁

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

Не очень понял претензии - если тебе нужен объект как переменная то есть и Long и Double - первый длинный, второй точный

Второй не подходит, нужно хотя бы десятичное число с плавающей точкой, подобных примитивов нету, BigDecimal единственный подходящий тип, но он не имеет операторов.

нельзя жонглировать длиной примитива - есть байт, есть инт, по середине нет 16ти битных, например

О чем ты говоришь, есть же short.

и 16бит регистры не существуют (т.е. один фиг 16бит займет нативные для системы 32 бита минимум)

Надеюсь ты это не из бредогенератора копируешь. Есть регистры ax, bx, cx, ... У тебя очень странная информация... Даже интересно стало, как ты пришел к такому мнению о 16 битах.

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

Я вот из любопытства за последнее время дважды заглянул в код open source проектов на Java.

Ну оно просто нечитаемое. Я, например, не понимаю, зачем в 2025 году писать простыни на несколько экранов вида:

class Foo {
  private Integer a;
  private Integer b;

  public Integer getA() {
    return a;
  }
 
  public Integer setA(newA) {
     a = newA;
  }
}

Меня эти мегатонный бойлерплейта просто выводят из себя. Это вид какого-то извращённого квадратно-гнездового насилия над человеками. Если человеку нравится писать и читать мегатонны бойлерплейта, за которым очень тяжело увидеть реальную бизнес-логику, алгоритмы, которые решают задачу, то я уже просто не знаю, что сказать.

Ну неужели реально нельзя было придумать ничего лучше?

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

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

Но я прям действительно не могу понять людей, которые говорят, что им нравится Java. У этих людей наверное дома везде прямые углы.

Да Java создавалась именно как инструмент создания корпорабов. В рекламных материалах Java в 90-х, постоянно подчёркивалось, что это язык, который позволит штамповать одинаковых взаимозаменяемых человекоюнитов, впахивающих на корпорации. И вот эта квадратная уголоватость, желание подчинить себе человекораба, так и торчит всюду из неё, чтобы человечишка постоянно получал углом под рёбра, и не мнил о себе много.

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

подобных примитивов нету, BigDecimal единственный подходящий тип, но он не имеет операторов.

BigDecimal не примитив по этому у него операторы обернуты функциями, что кстати местами полезно (например при делении)

О чем ты говоришь, есть же short.

А я не уверен что он 16 бит внутри (ниже)

Надеюсь ты это не из бредогенератора копируешь. Есть регистры ax, bx, cx, … У тебя очень странная информация… Даже интересно стало, как ты пришел к такому мнению о 16 битах.

Жвм в общем случае приводит все к инту притом системной длины под капотом т.е. short вроде как может занимать 16 бит при хранении (по крайней мере оракл так пишет) но при каждой математической операции будет развертываться в 32 бита - по этому по факту ими никто особо не пользуется ибо инт обычно шустрее
С байтом кстати я выше тоже налюбил - он тоже в 32 бита минимум развернется в большинстве случаев

Есть регистры ax

Ax и иже с ним разве до сих пор самодостаточные а не просто половинка от еах?

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

Нет, там было по другому. Разворачивалось на моих глазах.

Если брать книги от авторов Java (озвученную мною ранее книгу Гослинга и еще была от другого автора - отдал знакомому и забыл имя автора), то планировали Java, вообще, для небольших устройств, чтобы там писать логику. Как я понимаю, через 30 лет примерно это и случилось.

Потом, в конце 90-х Java подавалась как язык для написания аплетов. Тогда браузеры только-только набирали популярность (как и компьютеры). И было очень здорово, когда код на Java запускался прямо в браузере с удаленного сайта.

Вообще, я считаю, что аплеты Java - это вообще лучшее, что когда либо случалось с HTML. Но история потом пошла по другому пути.

Перемены начались, когда Java связалась с банками на рубеже 90-х и нулевых годов. Там и пошла в оборот.

А потом просто физически не осталось защитников Java-аплетов. Некому стало продвигать эту фантастическую идею. Сейчас же имеем убогий HTML5 и не менее убогий JavaScript.

А так, для своего времени Java была очень хороша. В итоге она стала тем, чем должен был стать Smalltalk, но не стал, а Java победила

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

но при каждой математической операции будет развертываться в 32 бит

Это совершенно не важно, главное что бы он работал как 16 битное значение, и массив 16 битных значений занимал в два раза меньше места чем массив int значений. На x86 и с 16-битными регистрами операции над ними выполняются медленнее чем над 32-битными. GCC например тоже работает с short как с 32 битными значениями если позволяет алгоритм: https://godbolt.org/z/h95Ybo9z1

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

long развертывается в long, адреса тоже 64 битные на 64 битных системах. Но например длинна массива и его индекс это int, и поэтому в Java есть ограничение на длину массива около 2^31 значений, ну и си-строк/массивов byte больше 2 гб быть не может.

Это невозможно исправить без поломки совместимости. Все же она предназначалась для кофеварок, а не для ворочанья террабайтов памяти.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 5)
Ответ на: комментарий от anonymous

Я не знаю, можно ли сейчас найти рекламу 90-х, явную и неявную. В основном, тогда всё происходило в печатных журналах.

Java позиционировалась как выдающееся решение по следующим признакам (компанией Sun, и теми, кому она заплатила):

  1. Write once, run anywhere (тогда было много аппаратных и софтверных платформ, сильно больше, чем сейчас)
  2. Простой язык, который позволит легко нанимать взаимозаменяемых разработчиков, кодовая база будет простой и понятной для всех.

Апллеты, мне кажется, не предполагались основной фишкой. На железе конца 90-х, начала 2000-х, они работали просто отвратительно. Я отлично это помню. Если на странице встречался апплет, то браузер фризился на несколько минут, часто со всей системой, т.к. стартовала тяжёлая JVM, всё начинало дико свопиться даже на более-менее хорошей сборке.

Это прививало хорошую память, чтобы избегать любые страницы и сайты с JVM. В то же время, появился Flash, который был на порядки легче и быстрее.

Притом апплеты и выглядели совершенно инородно на странице. Даже по тем неизбалованным временам, интерфейс JWT (да даже и Swing) выглядел грубо вырубленным топором, квадратно-гнездовым.

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

Если через Swing, то это был тормоз, где демка Java2D грузилась минуты две (потом они добавили ленивую инициализацию). А вот, если AWT да еще на микрософтовской JVM, то работало довольно шустро. Это можно было развить, но толком не развили.

Язык действительно был простой по сравнению с языком-чемпионом того времени, с тогдашним языком C++. Многие откровенно в ФИДО писали, что работу они работают на C++, а на Java отдыхают для души. Java выглядела тогда очень привлекательно, хотя и была тормозной.

То есть, я хочу сказать, что Java сначала получила признание как язык для хобби, а всей такой энтерпрайзно-энтерпрайзной из себя стала позднее.

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

Апллеты, мне кажется, не предполагались основной фишкой.

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

bread
()

Брать лучше C++ и Kotlin.

  1. C# - виндузятно-корпоративно-майкрософтная попытка перетянуть на себя одеяло Java. Это не язык, это политота. Подминание под себя Java-рынка Биллом Гейтсом, ничего более. В микрософте посмотрели как в банках всё на Java клепают и захотели такой же язык себе в виндовой экосистеме. Хотя на нём что-то в OZON пишут сейчас, но скорее это продиктовано теми старпёрами, которые оказались в позиции архитекторов того проекта. Типа как java в «одноклассниках» - там просто какой-то эксперт по JVM на тот момент работал в штате, вот и понеслось. А вот такие сайтики как «фотострана» или «loveplanet» в двухтысячных были на жостком садомазо-C++ написаны в backend или на си-с-макросами, треш и угар по-взрослому творился, до сих-пор наверное работают.

  2. Java - устаревшая, но классическая штука. «Мир java», то есть разные виды JVM, под которыми работают всякие Scala/Kotlin - это надолго, потому что красивая идея была. Но сам язык по меркам 2025 года слишком многословен и туп, под каждый чих класс пейсать и шаблонов нормальных нет. Изначально там была красивая идея «написал один раз, работает под любой платформой», но на момент 2025 года всем нассать, потому что железо дороже, чем абстрактные идеи - перекомпилировал под что надо и зашибись. Я не эксперт в андроиде, но кажется даже сборки .apk нынче могут содержать бинарный код под конкретную железную архитектуру ARM, например v7, например Telegram какие-то супероптимизировнаные куски приложения/кодеки так может таскать. В мобильном приложении Telegram под ведроид вообще жесть понахимичено на сишечке, как я понимаю, потому что иначе как с аппаратным ускорением видосы во время отправки в чатик они перекодируют на клиенте? Java - это красивая история, классика, но ненужно как старый красивый мерседес 1983 года выпуска - круто, уважаемо, но жрёт бензин и автоматически не тормозит перед бабкой перебегающей дорогу ночью.

  3. Kotlin - это очень выразительный современный язык, порождённый в России-матушке в Санкт-Петербурге после творческого глубокого переосмысления кучи разных других языков из JVM-мира и вне его. Используется в настоящее время массово повсеместно для разработки под ведроид и рекоммендуется гуглом для этого. Многие до сих пор пишут на Java эти приложения, но похоже это уже старпёры-неосиляторы всего нового.

  4. C++ - чудовищно мощен и выразителен, а времена отстрела ноги, если ты обычный разраб, который читал новые стандарты C++ - ушли. Нынче код на C++ легко пишется так, что не увидишь ни указателей, ни выделений памяти, причём кратко и сжато. Страшен из-за беспредельной мощи - новые фишки добавляют, а старые-то не убирают! Получается сумасшедший шайтан-коктейль смерти. Упоротые гении могут невозбранно сочинить там «язык внутри языка», написать на нём что-то, что никто никогда в жизни не прочитает и агрессивно пытаться утверждать, что это единственно правильное решение - их бьют, увольняют, харкают в рыло, в общем начинаются драмы, широкое поле потенциально ненужных скандалов открывает язык - применять его для написания большого количества микросервисах в корпорациях с множеством увольнений не советуют почему-то, хотя кто сказал что на расте такой фигни не происходит. C++ каждые 3 года переосмысляется и выкатывается новый стандарт с новыми фичами, например цикл можно написать короче или перестать писать тип возвращаемого значения или начать вычислять значения функций во время компиляции - короче C++ хоть и старый дед, но кукухой знатно поехал в последние годы, помирать явно не хочет. Я думаю, туда скоро опцией Borrow Checker добавят типа g++ -std=c++27 -fborrow-checker и Rust ещё успеют захоронить и на могиле насрать.

Золотая жила - это хорошо уметь клепать быстрый нетребовательный к ресурсам backend на C++, пилить на нём внутренности СУБД и быстро отдавать серверные ответы за наносекунды, чтобы сотни тыщ запросов в сек на виртуалке за 350 рублей отдавало и одновременно рулить в Kotlin, делая на нём мобильные приложения, которые будут ходить в твой мегабыстрый C++ backend.

lesopilorama
()
Последнее исправление: lesopilorama (всего исправлений: 3)
Ответ на: комментарий от anonymous

А потом просто физически не осталось защитников Java-аплетов. Некому стало продвигать эту фантастическую идею. Сейчас же имеем убогий HTML5 и не менее убогий JavaScript.

webassembly придумали же, чем хуже. Тот же байткод, компилируемый JIT в бинарный и исполняемый в браузерном контейнере. Из чего хош в webasm компилируй - хоть из C++, хоть из Java.

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

только в каком порядке учить или учить параллельно? а если не хватит времени

Не надо учить, надо брать проект/идею/стартап/пет-проджект и сразу делать его. Споткнулся - пошёл почитал в DeepSeek как это преодолеть - продолжил. Так и выучится. Сначала реализация будет кривой и медленной, но это в 100500 раз лучше, чем какие-то учебные задачки. Если тебе скажут, что DeepSeek врёт или что ты впадёшь в зависимость от нейроночек, а сам ничему не научишься - харкни в них. Просто не впадай в зависимость и фильтруй мозгом ложь.

И когда придёшь работу искать, то там не спросят что ты учил, там спросят что ты реализовал на этом языке. Ты выйдешь и скажешь - вот поцоны, игрушку сделал, покажешь адрес сайта http://bububugagaga.ru/hahaha - они откроют, а там танчики по экрану ездят, круто, наглядно, понятно. Сразу и будет ясно что ты там умеешь.

lesopilorama
()
Последнее исправление: lesopilorama (всего исправлений: 3)
Ответ на: комментарий от mdilink

Мессенджеры да, задача любопытная. Причём, всё ещё нужная. При том, что уже есть телеграм и вотсап, народ мессенджеры всё равно делает - внутри озона, внутри авито, внутри вайлдберрис, в тинькове и т.п. сделан свой мессенджер для общения с клиентами или другими продавцами. Это не «чатик в телеге», а с нуля-полунуля сделанный свой проект мессенджера, который постоянно допиливают и который даже у гигантов индустрии бывает кривой. Самый крутой мессенджер - это телега конечно, но его человек 30 пилит начиная с 2011 года (знаю изнутри нюансы слегка). Хорошо сделать мессенджер трудно по многим нюансам - и по gui и по backend - чо будешь делать если в чатике 1 млн сообщений и кто-то решит покрутить в середину? А лайки и реакции как хранить? И всё такое, тонна сложностей. Проект гигантский, если хочется сделать хорошо. Мессенджеры делают в яндексе, в тимсах всяких, в vk. Может даже получится продать свой проектик веб-мессенджера какому-нибудь озону за 100 лямов, если будет хорошо реализовано и масштабироваться дичайше и мало серверов жрать.

Можно попробовать заточиться на что-то особенное, например мессенджер для веба для организации рабочих чатов с таск-трекером. Таких тоже дофига, но чем черт не шутит. Может голосовухи будут лучше всех у тебя работать там.

Но это всё-таки конь-задача, причем маркетинга там 50%

lesopilorama
()
Последнее исправление: lesopilorama (всего исправлений: 2)
Ответ на: комментарий от mdilink

(пре пре амбула):Всё тебя так:

(преамбула): ты или тролишь или (не)(намеренно)прост

у тя в коде логические ошибки:

(1)мертвая ветка при проверки argc

(2)перепроверяются в цикле входа(инвариантные) как следстивие только при пустом входе у тя цикл завершится ибо только в этом случае у тя мутирует count к 5

крч если тебе нужны <деньги срочно> кури Назарову волчистость

а в целом те (начиная с простейшего) программирование на любом (по твоему выбору) языке программирование следует проботать

ибо на данный момент те (ТЫ если не тролль а таки ой):

знаешь все буквы и не можешь прочитать слово

qulinxao3 ★★
()
Последнее исправление: qulinxao3 (всего исправлений: 2)
Ответ на: комментарий от anonymous

вот видно что во времена оные были неофитом джавы

скажу честно - весной 97(а это уже явно не совсем java v0.1 :)) - уже тогда в россии java была если не в банках но в фирмах которые писали софт и для банков «через дорогу»

жаба это реально существенно тянутый не сам oberon - а очень модный до массового распростанения μпроцессорных персоналок принцип структурной(sic) виртуализации машин как набора матрёшек - али слоёв (зависит от культруры интра али экстра :) ) - теже первые издания Таненбаумовых tanenbaum structured computer organization

Structured computer organization. Upper Saddle River, NJ: Pearson Prentice Hall. 1976.

И для агентского исполнения js (читай cхема) много лучше излишне box_unbox javа

для реального успеха java в браузерах не хватали «wasm» ибо вирт_машина jvm излишне сильна в сравнение с вирт_машиной wasm

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

прикол с «историями повторяемыми как комедии»

в середине 90ых платформ(именно которые имели десятки процентов всего рынка) апаратных было меньше чем когда и USPD-p не взлетел как софтверный вариант микрокода[всякие jvm, CLR , И прочие «байткод"а они же и есть ] - а не взлетел же восходе рс-изации офисов

аплеты -жабы были как раз для школоты

имхо банки быстро[30 лет с начала 60ых было достаточное мгновение] увидели (ибо на примере ibm c их вечной „os/360“) преимущества „языка высокого уровня“ jvm/java

тем более sun смогла сделать java и jvm бесхозной не позволив микрософт отравить среду через j++ -

оракл выкупил sun уже когда java стала cobol 2.0

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

java был привлекателен для людей травмированных языками с (излишней) статической линковкой

а последнии обусловленны интегральной слабостью железа+(не_подходящая_совтферная_архитектура) - ибо lisp (очевидно машинный язык)( уже в 60ых что же мог)

т.е. С++ быстрее «smalltalk» на задачах где почти всё можно отрезолвить в момент билда образа - а если задача требует позднего связыванания(но не абсолютно произвольного) так есть магия public protected friend void :)

Т.е для слепых (промышленное c++) и циклопичность(java) фаворский свет

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

свои месенджеры пилят ибо это не только месендер но и система распределённого решения задач с достаточно полным логированием всего датастрима для обьективизации рулёжки производственными процессами между сотрудниками

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

М-да, а ребята за 42 млн стругают текстовый редактор.

Пошучу

И не дорого совсем.

Возьмём к примеру фирму 1С.
В ней сотни программистов, которым платят хорошую зарплату.
Сомневаюсь, что они бесплатно что-нибудь возьмутся разработать …

Вы поняли о чём я.

Интересно знать мнение форумчан по затронутой теме.

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

весной 97(а это уже явно не совсем java v0.1 :))

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

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

С++ не бери, лет 20 назад - да, особо выбора не было в определённых областях, сейчас есть выбор. У плюсцов, наверно, худшее в индустрии соотношение полезного выхлопа к затраченным силам и времени. Вся их «мощь» тратится на борьбу с самим же языком, и это скорее не мощь а исторически сложившаяся жирнота и довольно бестолковая. Для системщины и похожего на неё по требованиям (максимальная скорость, корректность, надёжность) очевиден раст, это уже настоящее и точно будущее, или что-то похожее. В нём, например, лучшая многопоточка системного уровня на данный момент, так что как раз серверы самое то писать. Можно ещё на Аду посмотреть. Если ослабить требования то Go и прочие жабо шарпы подойдут.

zurg
()

Какой язык выбрать из Java, C++, C#, Kotlin?\

Посмотрите на каком ЯП написано ядро Linux и многие популярные проекты.
Что касаемо C++, то присоединете лучшее из него к Си.

И в целом для чего нужен ЯП?

Ответ на этот вопрос и будет правильным ответом.

anonymous
()