LINUX.ORG.RU

Нужность: Golang, C#, C++

 , ,


0

5

Как я понял, Golang позицируется как язык для написания всяческих бекендов, славится своей многопоточностью и упрощенным синтаксисом. По мнению большинства, С++ является производительным, но сложным для написания программ. С# - убийца java, в какой-то степени даже универсален, синтаксис кажется удобным и правильным. Первый ассоциируется с какой-то игрушкой, например, ничего путнего в сети не нашел по перехвату сочетаний клавиш в консоли. От пользователей ЛОРа вижу часто гневные сообщения в сторону mono и .NET в целом. Этот фрейморк действительно такой тормознутый? А если сравнить его с QT в плане производительности? Что можете сказать о реализации C++ на .NET - тоже тормоз по умолчанию? Сорцы .NET теперь открыты, mono берет их кодовую базу, значит ли это, что теперь программы на этом фреймворке будут работать стабильно в линуксе? Может всё-таки оно уже нужно?

C# на десктопе нужно так же как и java. Т.е. никак. Собственно, десктопные поделки на Go тоже не очень принято писать.

entefeed ☆☆☆ ()

Абзацы и разбивка текста на логические блоки - твоё сияющее всё. Запомни это.

Этот фрейморк действительно такой тормознутый? А если сравнить его с QT в плане производительности?

Зачем сравнивать фреимворк и плеер?

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

Ну в отличии от C# и Java в сообществе к Go относятся более лояльно и иногда даже с определенной «любовью».

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

Ну в отличии

правильно писать: «в отличие» — это, твоё сияющее всё. Запомни это.

redhat ()

нужность не в последнюю очередь определяется наборами библиотек, например к бд, сервисам, популярным портам, клиентам, биндингам

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

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

entefeed ☆☆☆ ()

Потерпи немного, скоро Rust 1.0 отрелизится, как минимум Go сразу станет ненужно. Если повезет, то и С++ через какое-то время. C# останется, на нем круды клепать удобно.

anonymous ()

C# как язык и .NET как платформа просто великолепны. Если нет противопоказатий и предубеждений, писать на них - самая мякотка. C++ под .NET - имхо, больше клей между нативным кодом и управляемым, нежели самостоятельный язык.

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

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

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

На десктопе нет, но при необходимости ставится легче чем тот-же rust. Да и ставить необязательно, можно просто собрать программу - поддержка бинарниковъ :]

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

Кстати, может ты мне пояснишь, почему го никак не взлетает с графикой? Что гуй, что 2д, что 3д. Сомневаюсь что там проблемы в одном лишь gc.

entefeed ☆☆☆ ()
Ответ на: комментарий от deterok

Да и ставить необязательно, можно просто собрать программу - поддержка бинарниковъ :]

Rust, емнип, по дефолту так же собирается. Да и плюсовые поделки полностью статикой собирать можно.

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

Да проблемы нет :)

Просто этим полные любители занимаются, а OpenGL и SDL вроде как забиндили уже (проверял, работает).

Qml'ное GUI то же транслировали, но я не проверял.

deterok ★★★★★ ()

А я вот, напротив, проникся к Go. Как раз сейчас его изучаю в дополнение к арсеналу из C, Python, Erlang

halturin ★★★★★ ()

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

C, C++ это низкоуровневые языки. Может быть сложным, хотя для написания программ сильно в дебри можно не лезть.

C# хорош для написания GUI-приложений под Windows. Для Linux я не уверен, что его пока имеет смысл применять. Его начали открывать, но пока нельзя однозначно утверждать, что он победит Java. Но потенциал у него есть.

Для GUI в Linux я бы использовал C (для Gnome) или C++ (для KDE).

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

Да вот мне на gentoo пришлось повозится, нет нормального, маломальски адекватного IDE/расширения к IDE. В общем ему еще долго подниматься хотя бы до уровня Go. Взять хотя бы стабилизацию API.

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

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

entefeed ☆☆☆ ()
Ответ на: комментарий от deterok

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

redhat ()

Есть такая типичная программка на дотнете — paint.net. Такой продвинутый пеинт. Запускается долго. Меня раздражает.

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

Для GUI в Linux я бы использовал C (для Gnome)

Почему не Gtkmm? Намного приятнее

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

Всегда считал его легковесным недофотошопом. По функционалу меня, как программиста, удовлетворяет + работает быстро и непринуждённо. Не знаю, может у тебя комп убогий?

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

Не знаю, может у тебя комп убогий?

Типичная отмазка жавистов и дотнетчиков. Как же она надоела. Пошел вон.

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

Ну тут дело в чем, надо просто написать транслятор для OpenGL из C в Go.

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

Но ведь биндинги opengl->go уже есть. glfw всякие тоже есть. Графику выводит, все необходимое умеет. Демки есть, работают достаточно шустро. Почему почти никто не пишет конечные продукты, или хотя бы аналоги каких-нибудь кокосов2д (который, кстати, уже на js и html5 во всю работает), а те кто пишет - бросает? Неужели го для этого подходит хуже, чем сраный js?

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

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

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

Ну если эти биндинги достаточно качественные и «от производителя», так сказать, можно и их, вроде как в основном народ на C пишет, у меня такое ощущение складывалось. Проще решить проблему, в случае чего.

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

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

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

То есть ты даже не допускаешь, что у тебя на самом деле может быть убогое железо?

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

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

Большинство справедливо отталкивает GC.

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

Т.е. проблема только в gc? Но ведь многие другие языки его имеют, и ничего, пишут на них графон. До С и C++ таким языкам конечно далеко, но все же там не полный ноль, как в го.

entefeed ☆☆☆ ()
Ответ на: комментарий от NightmareZombie

Не знаю, может у тебя комп убогий?

Допустим. А почему пеинт-переросток-то долго запускается?

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

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

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

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

скоро Rust 1.0 отрелизится, как минимум Go сразу станет ненужно

Не забудь вернуть в свой манямирок NxM планировщик легковесных тредов на досуге, ок?

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

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

deterok ★★★★★ ()

Как я понял, Golang

Шаблонов нет, классов нет (про инетрфейсы в курсе, ага), nested функций и тех нет, есть ублюдочный GC, который фактически нельзя управлять. Это Го вообще какой-то недопитон, с замахом на сишку. То, что это где-то взлетело — сугубо зааслуга гугла и его влияния.

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

Rust и Go — языки разных ниш. Rust — убийца C++, Go — убийца жабки.

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

Потерпи немного, скоро Rust 1.0 отрелизится

И что? Когда он отрелизится, он перестанет быть ублюдочным уродцем?

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

классов нет

А это что? http://www.golangpatterns.info/object-oriented/classes

Go:

type Integer int;
func (i *Integer) String() string {
    return strconv.itoa(i)
}
И дальше Го-«класс» используется как самый обычный класс в плюсаx/жабе.

Java для сравнения:

class Integer {
    public int i;
    public String toString() { return Integer.toString(i); }
}

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

Это интерфейс. И по-сути просто перегруженная функция, которая принимает либо указатель, либо значение. А то, что там можно через точку писать — просто сахар.

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

Вообще единственная годная вещь в Го - это каналы. Однако в том же уродце русте такое тоже есть. в C# вроде бы тоже. Что качается крестов, то там такое пишеься за 2 минуты. Так что пока не нашел причин почему Го это как-то полезно. Если толькл низкий порог вхождения, а потом о.уевания от того, что «яжетожепрограммист»

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

А то, что там можно через точку писать — просто сахар.

А в джаве/плюсах и т.д. то, что первый параметр (this) автоматически подставляется и не виден - не сахар?

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

Всем известно, что чтобы язык был ООП, в нём должно быть ключевое слово class.

PolarFox ★★★★★ ()

Многопоточный рендеринг - прорыв, не спроста же мозилла решила пилить яп для этого.. Легко ли рулить потоками в расте? Гонюсь за двумя зайцами: удобство и производительность, пока к решетке склоняюсь больше..

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

не прикидывайся дурачком.

В го есть приватные методы? Наследование? В го можно сделать конструктор структуры, который принимает НЕ типы из структуры, например?

Даже с интерфейсами этими лажа.

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

type test struct  {
	x, y int
}

func (t test) String( ) string {
	return fmt.Sprintf("%v:%v", t.x, t.y)
}

func main() {
	t := test{0, 1}
	fmt.Println(t)
}

потом я структуру расширил, и переделал функцию, чтоб она принимала указатель (ах да, Го так же не умеет и перегрузку функций делать)

func (t *test) String( ) string {
	return fmt.Sprintf("%v %v", t.x, t.y)
}

И это даже скомпилилось! только вот я получил не тот результат, который ожидал. вместо строки 0:1 я получил {0, 1}

Так вот. Нахер такое «ООП». Это какой-то непонятный кастрат «типа ООП»

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

чтоб она принимала указатель

Так ты либо трусы сними, либо крестик надень.

Если у тебя func (t *test) String( ) string { то надо t := &test{0, 1}. Тогда вернет 0:1

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