Java - язык программирования.
WinAPI - набор библиотек предоставляющий интерфейс взаимодействия с операционной системой Windows.
.NET Framework - набор библиотек для разработки приложений под операционную систему Windows.
Всю эту информацию (и даже больше) можно легко найти использовав любую поисковую систему - Яндекс, Google и проч.
Другие языки программирования и технологии
можете на пальцах объяснить что такое: .NET Framework, WinAPI, Java?
Очень старые проигрыватели для компа, сейчас они многие новые форматы записи не поддерживают.
Valeriy G
При чем тут проигрыватели?
на пальцах можно объяснить лишь как забивать гвозди.
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.
- графический интерфейс приложений, то есть окна, элементы управления (которые на уровне 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.
Igor Astahov
Спасибо, все четко и понятно!
Только поясните - почему на .NET Framework программировать легче?
Только поясните - почему на .NET Framework программировать легче?
Похожие вопросы
- .Net FrameWork глазами пользователя...
- Насколько будет трудно выстроить большую систему, если выбрать определенную технологию, например .Net Framework ...
- Что такое NET. Framework 3.5 SP3? Зачем он нужен?
- Что такое NET. Framework 3.5 SP3? Зачем он нужен?
- Не могу определиться какой язык программирования изучать? Языки: С++ PHP Java Script IOS Java Flash Android
- на пальцах объясните пожалуйста, что такое рендеринг?
- Try{ }catch c++ Можете по-простому объяснить операторы try,catch? Cпасибо
- Почему в этой программе переменная объявлена дважды? (C++, WinAPI)
- Перспективы Java Каковы, на Ваш взгляд, перспективы Java в виду развития более молодого языка C#и платформы .NET в цел
- Выбор php framework.
Вот, к примеру, из вашего объяснения - чем отличается .NET и WinAPI? Вот это мне непонятно