[Java] Нормальная документация?

6yrop

Где найти нормальную документацию для сабжа? нормальная это типа э этой

pitrik2

http://java.sun.com/j2se/1.4.2/docs/api/index.html
чем это не нормальная?

maggi14

А, типа, java.sun.com не рулит?

6yrop

это спецификация билиотек (в .NET это называется .NET Framework Class Library а где обзорные разделы, по которым проще войти в курс дело, и которых часто достаточно

maggi14

Там есть и такое. Поищи на сайте java, там все просто и без дизайнерских наворотов.

6yrop

или это и есть удивительный мир Java, где можно поебаться на пустом месте

maggi14

Ява, конечно, геморрой, но доки там нормальные. МСДН мне, правда, больше нравится.

olga1969

У Экеля, может, посмотреть...?

6yrop

так я там и смотрю, там трехэтажные выражения констрктор в кострукторе и еще раз в конструкторе, да еще какие-то проблемы с кодировками...

olga1969

Что ж делать
Такой уж у Явы подход, через паттерн "Декоратор" все I/O.
Сначала не очень привычно.
Насчет проблем с кодировками - вроде там отдельные иерархии Reader и Writer классов для этого создали.

anton7805

есть и 4-этажные,но потом привыкаешь

enochka1145

Попробуй почитать
- Thinking in Java
- Java IO
- Java NIO
Всё это есть в сети

6yrop

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

enochka1145

Достаточно посмотреть Thinking in Java, глава 12: The Java
I/O System. Остальное - на усмотрение любителя I/O.
---
А почему такая неприязнь к Java? Чужие лавры не дают спать?

psihodog

а жава может писать только на виртуальные жёсткие диски или на обычные тоже можно?

GlukhovK

> Thinking in Java
Из штатной документации и определения языка это не следует?
---
Q: А почему вJava XXX YYY?
A: Потому что так завещал великий и мудрый Сун, и по другому делать некошерно.

Dasar

> Из штатной документации и определения языка это не следует?
Совсем разная направленность материала
Документация - это обычно references, т.е. что делает тот или иной класс, что делает тот или иной метод.
А вышеприведенные книжки - описывают как лучше подходит к использованию этих классов, как лучше проектировать приложения и т.д.

pitrik2

а жава может писать только на виртуальные жёсткие диски или на обычные тоже можно?
какой-то странный вопрос
а С++ может?
Java полноценный язык программирования
любую прогу сделанную на Си можно сделать на Яве и наоборот

maggi14

Гы. И как ты предлагаешь писать, например, драйвера на яве? или операционки?

Marinavo_0507

А какие проблемы? Другое дело, а зачем?

maggi14

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

pitrik2

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

maggi14

Тогда виртуальная машина и будет той самой операционкой. И написана она, естественно, будет не на джаве.
На Си я могу написать отличный шикарный абстрактный драйвер. Разумеется, он будет драйвером подо что-то: под 8086, например, под звуковуху такую-то с макинтошевским процом - пофиг. Это будет ОС-независимый драйвер.

pitrik2

это как это?
пример такого драйвера в студию

maggi14

mouse.com

pitrik2

ну и теперь подкрути мне этот драйвер к линуксу, к макинтошу
слабо?
это потому что ты написал драйвер под конкретную операционку
более того - под конкретный обработчик драйверов

voronetskaya

физики в программировании

psm-home

Предлагаю рассмотреть вариант hardware JVM. Такие вроде есть.

maggi14

Гыыы. Этот драйвер прекрасно крутится к линуксу, поскольку не использует ни одной фишки доса. Более того, если тебе удастся его выполнить (в смысле, если ты сумеешь засунуть его в память и установить счетчик команд на начало этого драйвера то он будет работать вовсе без операционной системы. А про маки - не надо мешать разные вещи. Маки - это, помимо другой ОС, еще и другая аппаратная платформа. Ты бы еще заставил на кассовый аппарат mouse.com поставить.

Marinavo_0507

> Тогда виртуальная машина и будет той самой операционкой.
> И написана она, естественно, будет не на джаве.
Если так рассуждать, то все операционки написаны на ассемблере.

pitrik2

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

maggi14

Тогда уж в машинных кодах.
Нет. Я не это хотел сказать. Я хотел сказать, что средствами джавы (если не считать, что можно написать на джаве компилятор хитрых джава-базирующихся конструкций в бинарный файл) нельзя написать драйвера. Если точнее, нельзя написать драйвера, не использующего JVM. В частности, я согласен, что JVM - это нормальная ОС, но ты же не можешь написать JVM на джаве.
Про аппаратные JVM я слышал, но это же, вроде, пока из области фокусов?
2Скифф: и что? Я работаю программистом с 2000 года. Многие ВМКшники в то время еще в школе учились. При чем здесь факультет?

Marinavo_0507

по ходу мы пришли к тому что на Java нельзя написать ассемблерный код
да, нельзя!
на С тоже нельзя
чтобы было можно, в конкретных компиляторах используют непереносимые расширения
понятно, ядро ОС на Java без таких расширений тоже не написать, как и на C

pitrik2

да
согласен с
кстати, что-то мне подсказывает что на Си нельзя написать mouse.com
тоесть на чистом Си, без вставок ассемблерного кода

Marinavo_0507

> если не считать, что можно написать на джаве компилятор хитрых
> джава-базирующихся конструкций в бинарный файл
некоторое подмножество Java (с некоторыми расширениями, в том числе и для ассемблерных вставок) вполне можно транслировать в машкод, не требующий отдельной виртуальной машины
ровно так же происходит и с С
просто C - удобнее для таких задач

maggi14

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

maggi14

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

pitrik2

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

Marinavo_0507

> Только в Си прямо стандартом прописано, что асм-вставки делать можно
Не гонишь? В C99 нашёл про вставки только в разделе common extensions, но не в нормативной части.
> структура самого Си весьма неплохо заточена для удобной организации
> действий в промежутке между выполнением этого ассемблера
не понял
по-моему, на Java достаточно языковых конструкций для такой же удобной организации
целочисленных типов вот не хватает
без unsigned ядро не очень удобно писать

maggi14

C89 A.6.5.9 - это то, что я сейчас нашел. Правда, смущает слово "драфт".
А какие конструкции позволяют в Яве работать с памятью?

Marinavo_0507

> А какие конструкции позволяют в Яве работать с памятью?
Будут ассемблерные вставки - сразу появятся конструкции.

Ivan8209

Мозг у кофеинщиков относится к NIH?
Если там документация такая, что оттуда нифига ничего
не следует, то место ей...
Хм...
"У параши."
Ява --- довольно классический язык. Алголоид, к тому же.
Вопросы проектирования в этих языках уже давно порешали.
И возникновение таких трудностей может означать лишь одно:
такой хороший язык.
---
Q: А почему в яве XXX YYY?
A: Потому что так завещал великий и мудрый Сун,
и по другому делать некошерно.

Ivan8209

> без unsigned ядро не очень удобно писать
Это как это?
---
...Я работаю антинаучным аферистом...

Dasar

> Я хотел сказать, что средствами джавы нельзя написать драйвера
а на C# драйвера писать можно?
Почему? Чего не хватает?
ps
Если к Java-е добавить класс Memory с методами:
setByte, getByte, moveBlock, zeroBlock
то драйвер можно будет написать?

maggi14

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

rosali

ps
Если к Java-е добавить класс Memory с методами:
setByte, getByte, moveBlock, zeroBlock
то драйвер можно будет написать?
Нет, у драйвера должно быть гаратированное время работы, а со сборкой мусора этого недбзя обеспечить. Так что будешь ты со своим драйвером на Java-е постоянно получать IRQ_LEVEL_NOT_LESS_OR_EQUAL или чего там...

Marinavo_0507

> Нет, у драйвера должно быть гаратированное время работы, а со сборкой
> мусора этого недбзя обеспечить.
У того подмножества Java, на котором писать ядро, сборка мусора необязательна. Кроме того, в области real-time garbage collection тоже есть некоторые достижения.

Dasar

> Ну, если ты скажешь мне, как ты будешь писать эти классы средствами существующей явы, я с тобой соглашусь
а зачем?
В Cи эти же функции тоже описываются не средствами Cи, а как внешняя, как-то по своему закоденная, библиотека.
Или другими словами, у нас есть JVM (интерпретируемая или компилируемая не важно которая вызовы к классу Memory транслирует в прямые обращения к памяти.
ps
Почему ты считаешь, что это будет уже не Java?
стандарт Java-ы же не говорит, что ряд классов не может быть хитрым (по своему закодированным)

maggi14

Почему это будет не ява? Я таких категоричных суждений не высказывал. Может, это будет Java 1.6. Может, это будет Java3. Просто пока джава не позволяет это сделать.

Dasar

> Нет, у драйвера должно быть гаратированное время работы, а со сборкой мусора этого недбзя обеспечить.
Что мешает выделять память не через new (с последующей сборкой мусора а через Memory.Heap.Alloc?

Ivan8209

Совершенно не обязательно.
Некоторые старые мотороллеры, по-моему, работают без тактового генератора.
По крайней мере, вполне реализуем процессор на взаимной
синхронизации (не знаю, как это правильно называется
без задания постоянной частоты.
Кстати, что там насчёт "Symbolics"?
---
...Я работаю антинаучным аферистом...

Dasar

> Просто пока джава не позволяет это сделать.
Только, все таки, не сама Java, а конкретная реализация JVM-а.

Ivan8209

Всё бы да ничего, но только, это почти одно и то же.
---
...Я работаю антинаучным аферистом...

Marinavo_0507

Да ничего подобного.
Минимальную недо-JVМ, чтоб запустить ядро, наваять нетрудно.
Вопрос, на который пока не было ответа: "Зачем?"

Ivan8209

"Концептуальная модель."
---
...Я работаю антинаучным аферистом...

Marinavo_0507

Ну вот есть (или была, лень проверять) ОС на SML. С драйверами, и прочей фигнёй. Ну и х№й с ней.

Dasar

> Вопрос, на который пока не было ответа: "Зачем?"
например - получить единую систему разработки, как для низа, так и для верха.
избавиться от наследственных проблем C (раздельная компиляция, двухпроходность, плоский доступ к функциям и т.д.)

Ivan8209

В этом случае, яве --- не светит.
---
Q: А почему в яве XXX YYY?
A: Потому что так завещал великий и мудрый Сун,
и по другому делать некошерно.

enochka1145

Мозг у кофеинщиков относится к NIH?
Если там документация такая, что оттуда нифига ничего
не следует, то место ей...
Хм...
"У параши."
Ява --- довольно классический язык. Алголоид, к тому же.
Вопросы проектирования в этих языках уже давно порешали.
И возникновение таких трудностей может означать лишь одно:
такой хороший язык.
---
Q: А почему в яве XXX YYY?
A: Потому что так завещал великий и мудрый Сун,
и по другому делать некошерно.
Ты ещё не устал повторять "Я дебил. Я дебил. Я дебил. ..."?

Dasar

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

psihodog

Вот ведь говорила мне мама: "Ставь смайлики! Ставь смайлики! В каждом своём посте ставь смайлики!"
А я её не слушал...

Ivan8209

А ты говори по-русски.
Они тоже не один десяток лет существуют.
---
"Narrowness of experience leads to narrowness of imagination."
Rob Pike

Dasar

> Они тоже не один десяток лет существуют
Сколько они существуют - не особо важно.
Важно, то что про паттерны (шаблоны проектирования) в man-ах или в документации по языкам - не пишут.

Dasar

В man-ах даже про структуры данных, или про какие-нибудь O(n) не пишут.

evgen5555

точно также на Си

Как же? Виртуальная машина Си?

pitrik2

Как же? Виртуальная машина Си?
а что? есть такие
вот на ВМК например разрабатывалась
не знаю правда в какой она там стадии...

ava3443

> некоторое подмножество Java (с некоторыми расширениями, в том числе и для ассемблерных вставок)
> вполне можно транслировать в машкод, не требующий отдельной виртуальной машины
Может я чего путаю, поправьте, но вроде GCJ как раз это и делает. Причём весьма успешно делает, даже Eclipse собирали им.
Оставить комментарий
Имя или ник:
Комментарий: