Другие языки программирования и технологии

можете на пальцах объяснить что такое: .NET Framework, WinAPI, Java?

IA
Igor Astahov
1 373
Java - язык программирования.
WinAPI - набор библиотек предоставляющий интерфейс взаимодействия с операционной системой Windows.
.NET Framework - набор библиотек для разработки приложений под операционную систему Windows.

Всю эту информацию (и даже больше) можно легко найти использовав любую поисковую систему - Яндекс, Google и проч.
Андрей Злобин
Андрей Злобин
87 748
Лучший ответ
Igor Astahov Да-да-да, я это тоже в википедии читал.
Вот, к примеру, из вашего объяснения - чем отличается .NET и WinAPI? Вот это мне непонятно
Очень старые проигрыватели для компа, сейчас они многие новые форматы записи не поддерживают.
ID
Igor Demenchenok
52 492
Valeriy G При чем тут проигрыватели?
на пальцах можно объяснить лишь как забивать гвозди.
Дмитрий К.
Дмитрий К.
21 295
Igor Astahov Круто.. . Не знаете - не встревайте
WinAPI - набор стандартных (системных, нативных) библиотек винды, реализующих все основные возможности винды:
- графический интерфейс приложений, то есть окна, элементы управления (которые на уровне WinAPI тоже являются особыми окнами) , меню.
- отрисовка окон и меню, рисование на окнах и меню. Очевидно, что это очень важный момент, поэтому функции отрисовки вынесены в 2 отдельные библиотеки - gdi32 и gdiplus.
- взаимодействие с сетью (скачивание файлов, получение HTML-кода веб-страниц)
- взаимодействие с реестром
- взаимодействие с файлами
- и многое другое
Практически все приложения на винде так или иначе используют WinAPI. Без WinAPI невозможно создать окно. Невозможно добавить ключ в реестр. Без WinAPI не загрузится винда.
WinAPI работает напрямую с железом компа.

.NET Framework - тоже набор библиотек, но уже не-нативный и напрямую с железом компа не взаимодействующий. .NET является оболочкой над WinAPI и над DirectX (который является альтернативой библиотекам gdi32 и gdiplus и работает с железом кома) .
Большой недостаток .NET в том, что приложения EXE и библиотеки DLL, написанные под него, компилируются не в машинные коды, а в промежуточный код, который компилируется .NET-ом уже при запуске приложения.
Как следствие, очень низкая производительность - и необходимость наличия .NET на компе, без которого приложения под .NET являются бесполезным набором байтов.
В общем, факт создания .NET был верным признаком начинающейся деградации программистов. Я не понимаю тех, кто не может писать под чистый WinAPI и DirectX. Имхо у них просто нет таланта и способностей к программированию. Но факт тот, что .NET уже есть и он достаточно востребован, поэтому изучать его всё же стоит.
Но когда будете писать приложение для заказчика, который не уточняет ЯП реализации и даёт достаточно большие сроки выполнения. . .Пишите под WinAPI.
Java, если говорить не о ЯП, а именно о платформе - тоже нечто вроде .NET, и даже аналог .NET от конкурента.
И имеет все её недостатки. Низкая производительность приложения (в разы ниже, чем с .NET). Необходимость наличия JVM на компе.

Но Java кроссплатформенная. То есть её специальную реализацию можно установить и на Windows, и на Linux, и на Mac, и на Android, и даже в микроволновку или холодильник. И одни и те же приложения на Java будут идентично работать на всех этих ОС. Конечно, приложение для микроволновки или андроида работать на винде не будет - и наоборот. Но совместимость Windows-Linux-Mac - полная. И если под джаву написана какая-то сторонняя библиотека, то скорее всего, она не требует тех же WinAPI и DirectX, и её можно включить абсолютно в любое приложение на Java, включая под микроволновку - и будет работать.
Естественно, Java в известной мере убогая. Не всё, что можно реализовать под виндой, можно и под маком и под линуксом - и наоборот. И то, что нельзя, в Java просто не включили. Поэтому и в ней часто приходится использовать нативные библиотеки типа WinAPI, примерно по такому принципу:
if (винда) {
используем винапи. . .
} else if (линукс) {
используем gtk..
}
Так что и Java не освобождает от необходимости в изучении WinAPI.
( Дмитрий )
( Дмитрий )
8 083
Igor Astahov Спасибо, все четко и понятно!
Только поясните - почему на .NET Framework программировать легче?