LINUX.ORG.RU

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

 , , ,


1

5

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

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

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

А у меня в убунточке регулярно, официальный клиент из snap

name:      telegram-desktop
summary:   New era of messaging
publisher: Telegram FZ-LLC (telegram-desktop✓)
store-url: https://snapcraft.io/telegram-desktop
...
tracking:     latest/stable
refresh-date: 18 days ago, at 11:40 MSK
channels:
  latest/stable:    6.0.2               2025-08-02 (6767) 82MB -
  latest/candidate: ↑                                          
  latest/beta:      ↑                                          
  latest/edge:      6.0.2-42-g273d5596d 2025-08-17 (6780) 81MB -
installed:          6.0.2                          (6767) 82MB -

Особенно часто когда ленты новостей смотришь… бац и грамм тихо схлопнулся.

Сейчас проверил настройки, аппаратное ускорение проигрывания видео отключено, так что я не знаю что оно так себя ведет.

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

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

Рекомендую запустить в терминале, и посмотреть, что выводится в консоль после падения.

Версия сейчас:

❯ pacman -Qi telegram-desktop
Название             : telegram-desktop
Версия               : 6.0.2-1
Описание             : Official Telegram Desktop client
Архитектура          : x86_64
...
Установленный размер : 113,98 MiB
Сборщик              : Sven-Hendrik Haase <svenstaro@archlinux.org>
Дата сборки          : Сб 02 авг 2025 16:38:07
Дата установки       : Ср 06 авг 2025 23:20:55
Причина установки    : Явно установлен
Установочный скрипт  : Yes
Проверен             : Подпись
Chiffchaff
()

А зачем ты спрашиваешь других? Почему сам не выбираешь, что тебе самому больше понравится? Почему другие должны решать за тебя?

А так, я бы смотрел на те книги, что у меня есть. Какая книга больше приглянулась, то и выбрал бы. Я так и делал всегда

anonymous
()

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

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

Главная проблема - это фреймворки, а они огромные. И как раз на рынке труда спрос именно на их знание и владение ими.

TechnoMag ★★
()

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

unixnik ★★★★★
()

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

Личное мнение о перечисленном:

  • c# - сразу выкидываем из-за виндовых корней. Да, работает в линуксе, да, быстро, но зачем?
  • c++ - сложный язык, но с точки зрения понимания, что и зачем ты пишешь - лучший вариант из представленных, и областей применения вагон. Если хочется программировать ради «наговнокодить на коленке за часок» - не подойдет.
  • java - хороший язык, если хочется в энтерпрайз, не очень сложен в освоении, довольно понятный синтаксис, куча всяких фреймворков для упрощения (или усложнения) жизни.
  • kotlin - пусть и считается, что язык для мобильной разработки, я на него переехал с java для бэкенда, по личным ощущениям один и тот же код на котле выглядит приятнее. Под капотом так или иначе компиляция под ту же jvm в тот же байткод и можно зависимости подтягивать в оба направления без проблем.
l0stparadise ★★★★★
()
Ответ на: комментарий от TechnoMag

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

Из перечисленных языков даже не знаю, что посоветовать. Мне когда-то давным давно очень нравилась книга Джеймса Гослинга по Java, но там Java 1.0.1, что уже давно не соответствует современной джаве. С тех пор джава разрослась, превратилась в монстра, как почти все современное программирование.

По котлину мне понравилась книга Жемерова и Искаковой «Котлин в действии», но это совсем не для начинающих. Надо быть уже сильно в теме JVM-языков, уже иметь опыт. Да и там в моем издании книги не было еще асинков. Сама книга хороша.

С++ я изучал по очень разным и многим книгам. Не знаю, что и посоветовать. Все хвалят Липпмана «С++ для начинающих», но я ее не читал.

Я школьником штудировал по языку C книгу Брайана Кернигана и Денниса Ритчи «Язык программирования C», но более раннего издания, где еще другие сигнатуры функций были, да и кажется, еще тогда было принято писать «Си» вместо «C». Вот новое современное издание этой книги могу посоветовать автору топика. Основа основ. Дальше много-много проще зайдут те же C++, да и все остальное из перечисленных в начале языков.

По C# специально не читал, кроме MSDN. После джавы очень все легко зашло, благо и джава, и C# были много-много проще в момент моего входа в те технологии. По C# советовать ничего не буду.

А так, я бы посмотрел шире. Всем советую книгу Уилла Курта «Программируй на Haskell», но желающих мало, хотя книга - одна из лучших по программированию, которые у меня когда-либо были. Но там лучше 18+ (логическое мышление формируется к этому возрасту). Печатное переведенное издание книги просто шикарно.

И кстати, еще очень хорошую книгу для расширения кругозора я бы юному человеку посоветовал: Питер Сайбель «Практическое использование Common Lisp». Лучше электронную версию. По простому называют PCL.

Сначала нужно набрать базу. Разобраться в языках. Через изучение языков можно попытаться разобраться в базовых алгоритмах, базовых структурах данных. Потом только выбирать. Ну, и про математику не забывать, особенно дискретную. Язык - это только начало очень и очень долгого пути в программирование.

Да и многие хвалят Абельсона и Сассмана «Структура и Интерпретация Компьютерных Программ». Я бы выбрал исключительно ту версию, где лисп (схема), но сам читал только частично. В просторечии ее называют SICP.

А так, пусть начинает с нетленной классики: Брайан Керниган и Деннис Ритчи «Язык программирования C» или упомянутый SICP. К какому типу мышления душа более склонна: конкретному или более абстрактному.

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

В общем, пусть юный человек выбирает сам.

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

http://www.stolyarov.info/books/programming_intro/vol1

Довольно-таки добротное введение в программирование, причём на разных языках. Правда, автор периодически суёт туда свои спорные категорические мнения (их на самом деле легко отфильтровать по тону), поэтому читать надо критически. На мой взгляд, весьма полезное чтиво.

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

а что за трехтомник Столярова я не в теме?

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

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

-1. отличная подборка

0. однако есть пара-тройка имхошек

1. K&R не учебник программирования - это учебник по языку и принятым за 7-10 лет практиковании(см Мемуар Кернигана же про Unix и вокруг) Сишки стиля - по алгоритмам там по сути букварь ( и да первая редакция много лучше второй)

2. нужен какой нить вводный текст на вроде <Брукшир,Брилов - Компьютерные науки> для представления о кодах да тот же Пецтольдов - Code

2.1 Хенеси&Патерсон либо Патерсон&Хенеси в зависимости от предпочтений если углублятся к околожелезу

ИТОГ:

ваще стоит Вирт/Дейкстра/Аха/(ну тот чувак который транзации изобрёл)/Стоунбрейкер / Хемминг т.е. лаурятов ACM полистывать ибо мудрости

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

c# - сразу выкидываем из-за виндовых корней. Да, работает в линуксе, да, быстро, но зачем?

Тут конкурс на максимально идиотскую причину?

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

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

Когда был совсем юным, то иногда я даже конспектировал книги, читая. Так читал и конспектировал книги по Аде, Модуле-2 и Форту, например.

Ах, как жаль, что Ада не стала популярной. Окончательно загубят ее в золотой клетке. Мне она так нравилась раньше!

P.S. Это ты на мое сообщение отвечал

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

реальная проблема индустрии

что люди за полезными приёмами (паттерны и есть)

просто забывают о фундаментальности адрессуемости и вычислимости адресов памяти

как следствие(прям по класcической goto considered harmfull) сверх-часто пытаются навертеть статическую систему объектов там где достаточно «многостадийной jit компиляции» средствами отложенной сборки

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

на ты трубе есть - тоже интервью Томсона Кернигану на которое что мемуар Кернигана ссылается что Боб Мар[ли]тИН в we programmers с предисловием primagena

закавыка «наших» видео-хостингов специфический алго рекомендаций

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

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

Правда, я почти никогда и не решал задач из книг. Мне этих задач потом хватило выше крыши и без книг.

Я так понял, что юный автор топика как раз подошел к теме через видосики. Какой-нибудь товарищ-блогер или даже блогерша выложил так называемый «обзор». Автор и заинтересовался. Я правильно понимаю?

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

отделы это абстракция тем более в перестраивающейся сети - прст феномены текущего состояния - и да колелирующие с законами физики :)

при чтение больше трансляций поэтому «мозгу» полезней

как и при решение задач - там ваще видимо симуляция больших поддеревьев решений даже если очень эфеективные эвристики отсечений

qulinxao3 ★★
()

Читаешь SICP, потом Lisp In Small Pieces, потом учишь Common Lisp (Practical Common Lisp, cl-cookbook итд), потом тебе становится понятно в программировании вообще всё, и каждый язык учится за неделю-две, выбираешь вообще любую вакансию на рынке.

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

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

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

Тогда нужно учитывать предпочтения препода в первую очередь - тебе же сдавать. Сильно не выеживаться. Чтобы выеживаться, нужно знать и разбираться в теме - и то бывают проблемы с некоторыми упертыми преподами (такими же упертыми как ты сам тогда в этом случае). Если не уверен в своих силах, то подстройся под препода.

P.S. Автор тех постов

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

тогда ставь vscode и + плугина

pascal :) (* шутка

с/c++ // это основное после паскакаля с лучше чем с сразу ибо как не печально но паскаль действительно хорош в обучению программированию

python # универсальный скриптошка -

ваще есле на winde то https://ss64.com/nt/ если linuХ https://ss64.com/bash/

ваще написание простеньких последовательностей - даже без особой логике - очень облегчает пользование персональкой

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

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

Как выяснили, здесь задача - сдать зачет или экзамен, чтобы пройти обучение. Исходить нужно из этой цели

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

А какие задачи у вас будут? Исходи из этого. Что будете изучать? У вас там курсовая будет? Какая курсовая, по каким темам?

Считай, что на C++ будет задачи решать сложнее в раз 5 или даже 10, а может и все 20 или 50 раз. Неравные языки по затратам, совсем не равные. Кто скажет обратное, что на C++ писать также легко, как на С# или Java, то те просто не знакомы с программированием. Там в C++ столько подводных камней! И столько книг посвящено только одному обсуждению таких подводных камней, как надо писать, а как не надо. Впрочем, подобные книги и для фортрана были. Так что, C++ здесь не находятся в гордом одиночестве, что уже хорошо.

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

А так, для обучения тем же алгоритмам и структурам данных проще всего выбрать между C# и Java, а проще всего писать будет на Kotlin, но я не знаю, есть ли для Kotlin книги для обучения. Серия Head First не годится для обучения на мой личный взгляд. Она - для быстрого погружения, но не для обучения.

Ты пока далекоидущие планы не ставь на счет будущей работы. Тебе бы научиться основам, а точнее, сдать курсовые, зачеты и экзамены. Ознакомишься, получишь базу, а потом сам спокойно выберешь для себя. Пока рано. Да и особой пропасти нет между C#, Java и Kotlin. А вот C++ стоят в стороне из-за работы с памятью

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

Считай, что на C++ будет задачи решать сложнее в раз 5 или даже 10, а может и все 20 или 50 раз.

Ага.
А если ещё вдобавок и баобаб, то в 500 раз.

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

так я знаю основы работы с for, while, do while, switch, массивами, функциями


#include <iostream>
#include <ctime>
#include <windows.h>
#include <iomanip>
#include <string>

void set_full_time(std::time_t* result)
{
	char buffer[26];
	ctime_s(buffer, 26, result);
	std::cout << buffer << std::endl;
}

void set_hms_time(std::time_t* result)
{
	std::tm local_time;
	localtime_s(&local_time, result);
	std::cout << std::put_time(&local_time, "%H:%M:%S") << std::endl;
}

void set_timer_tab(std::time_t* result, int minuts, int* count)
{
	std::tm local_time;
	localtime_s(&local_time, result + (minuts * 60));
	std::time_t tab_time = std::time(nullptr);
	int current_time = difftime(tab_time, *result);

	if (current_time < (minuts * 60)) {
		std::cout << "Timer - " << current_time / 60 << ":" << current_time % 60 << "\n";
		std::cout << "Таймер установлен на " << std::put_time(&local_time, "%H:%M:%S") << " \n";

		
	
	}
	else {
		std::cout << "\a\n";
		++(*count);
		std::cout << *count;

	
	}
}

int main(int argc, char* argv[])
{
	system("chcp 1251 > null");
	std::string input;
	std::string input1;
	int count = 0;

	if (argc > 1)
	{
		input = argv[1];
		input1 = "default";
	}
	else if (argc > 2)
	{
		input = argv[1];
		input1 = argv[2];
	}
	else
	{
		input = "tabletki";
		input1 = "1";
	}

	std::time_t result_tab = std::time(nullptr);

	while (1)
	{

		std::time_t result = std::time(nullptr);
		if (input == "full" && input1 == "default")
		{
			set_full_time(&result);
		}
		else if (input == "not_full" && input1 == "default")
		{
			set_hms_time(&result);

		}
		else if (input == "tabletki" && input1 != "default")
		{
			set_timer_tab(&result_tab, std::stoi(input1), &count);
			if (count == 5)
			{
				break;
			}
		}
		Sleep(1000);
		system("cls");
		

вот писал себе консольное приложение на с++ для отслеживания выпитых таблеток, вроде бы не дописал

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

Тебе не надо «выбирать язык», тебе нужно учить основы программирования, от алгоритмов и моделей выполнения, до всяких низкоуровневых вещей. От работы сети и до работы СУБД.

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

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

Ой, а может тогда Rust? Язык достаточно перспективный, мощный, и перепрыгнуть с паскаля на него, минуя си-подобные языки с их загонами, порой просто идиотскими – очень заманичивая тема.

hobbit ★★★★★
()