ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Вісім міфів про Java
         

     

    Інформатика, програмування

    Вісім міфів про Java

    Java повільно працює

    Це досить старий міф, але коли-то він справді був правдою. Спочатку віртуальні машини, на яких виконувався байт-код Java, були недосконалі, і до того ж мова Java і віртуальна машина розроблялися не для комп'ютерів в звичному їх розумінні, а як якась універсальна середовище для різних пристроїв, де швидкість роботи програм була некритична, а обсяги даних незначні. Різниця в швидкості виконання однакових завдань між звичайним компільовані кодом і інтерпретується кодом Java могла досягати сотень разів. Але незважаючи на це, в даний час швидкість роботи байт-коду на сучасних віртуальних машинах поступається кращим компіляторам машинних кодів всього лише на кілька десятків відсотків, а в деяких випадках навіть і перевершує їх! Невже інтерпретація може обігнати скомпільовану програму? Зрозуміло, немає. Справа в тому, що Java байт-код тепер вже не інтерпретується віртуальною машиною, а компілюється та ще й оптимізується, причому динамічно, на основі що збираються віртуальними машинами даних про хід виконання програми. По тестах на скорострільність Java досить непогана, але як же йдуть справи з реальними додатками? На жаль, з одними додатками справи йдуть не так вже й добре. Причина тому повільна робота графічних компонентів системи.

    Програмісти Java знають, що в мові є два стандартні можливості для роботи з призначеним для користувача інтерфейсом AWT і Swing. AWT це платформозавісімая реалізація графічного інтерфейсу користувача. Швидкість роботи більшості її реалізацій цілком задовільна, але кількість функцій дуже обмежено. В якості альтернативи AWT розроблена бібліотека Swing. Вона цілком заснована на можливості мови, має безліч функцій і платформонезалежних, але швидкість її роботи невисока.

    На Java складно програмувати

    Міф про складність програмування на Java заснований більшою частиною на тому, що стандартна бібліотека класів має багаторівневу деревоподібну структуру і включає величезну кількість різноманітних об'єктів і прикладних алгоритмів. Але саме завдяки стандартним класами спрощується створення та підтримка додатків.

    Мова програмування Java є повністю об'єктно-орієнтованим. За синтаксису він схожий на Сі + +. При цьому надмірний, що приводить до помилок функціонал Сі + + (такий, як перевантаження операторів або множинне спадкоємство) відкинутий. Замість множинного успадкування в Java застосовується набагато більш проста концепція інтерфейсу, тобто іменованого угоди про дзвінки набору функцій. Java використовує строгу типізацію і не допустить невірної передачі параметра, до того ж вона набагато суворіше Сі + + ставиться до недбалість у вихідному коді і, наприклад, не дозволить створити метод зі свідомо невживаних ділянкою коду. Також Java не відкомпілює програму з неініціалізовані змінної.

    Один з головних джерел проблем при розробці програм неправильне використання динамічної пам'яті, а точніше, некоректне звільнення зайнятих раніше блоків. Java використовує концепцію збирача сміття. Це означає, що програмісту абсолютно не потрібно піклуватися про звільнення зайнятої ділянки пам'яті. Система сама додасть його до вільної пам'яті, коли виявить, що посилань з програми на даний об'єкт вже немає.

    Для сигналізації про помилки Java вдається до модної концепції винятків. Виняток це якесь спеціальне подія, яка сигналізує про помилку в програмі. Більшість мов програмування (і API) для сигналізації про помилку передають викликає результат виклику функції (погано або добре). Код аналізу повернутого значення в результаті виявляється перемішаним з кодом нормального виконання програми, це ускладнює читання програм та їх модифікацію. Проте, що набагато важливіше, виключення не тільки покращують читаність вихідних текстів, а й не дозволяють викликає функції проігнорувати помилку. Програміст зобов'язаний або відловити виняток, або перекласти цей обов'язок на зухвалу функцію.

    До сказаного можна додати, що в Java вбудована підтримка мультизадачності. При створення багатопотокових додатків розробнику, як правило, доводиться використовувати засоби операційної системи (семафори, Мьютекси) для синхронізації задач. Java ж пропонує універсальне рішення на основі конструкцій самої мови.

    Резюмуючи, можна сказати, що за складністю програмування Java і в порівняння не йде з Сі + + або Паскалем. Розвинені можливості мови, підтримка збору сміття, єдина стандартна бібліотека класів, контроль з боку компілятора все це помітно спрощує створення додатків і прискорює їх налагодження.

    Java працює скрізь однаково

    Створюєш один раз використовуєш де завгодно (Write once run anywhere). Друга частина цього гасла творців Java містить твердження, що Java-програма працює скрізь однаково. На жаль, насправді все не так просто. Java-машини різних компаній на різних платформах НЕ стовідсотково сумісні один з одним.

    Відмінності в роботі Java-машин на різних платформах існують і в реалізації мультизадачності, і в роботі віконної бібліотеки (AWT). Складні Java-програми необхідно проганяти на різних платформах, щоб переконатися, що все в порядку. Взагалі кажучи, навіть і на одній платформі, але на різних машинах, подібні програми можуть виконуватися по-різному. Наприклад, програміст може зіткнутися з ситуацією, коли його код на багатопроцесорної машині веде себе інакше, ніж на однопроцесорній. Особливо слід згадати Java-машину, створену компанією Microsoft (далі MS JVM). Вона носить назву Java не зовсім законно (що було підтверджено недавнім рішенням суду). У MS JVM ви не побачите підтримки технологій RMI або CORBA, зате тут можна використовувати об'єкти ActiveX технологію, специфічну тільки для платформи Windows і більше ніде не існує. відображають деякі особливості роботи платформи Windows.

    Не можна також забувати і про різну швидкість роботи Java-машин. Ця різниця може призвести до неприпустимих затримок в роботі програми або інших проблем. Висновок із вищесказаного простий: при створенні Java-програм слід тестувати їх на широкому спектрі платформ і не користуватися нестандартними розширеннями мови.

    Java це мова програмування

    Існує думку, що Java це тільки якийсь мова програмування. Але це всього лише оману. Так, Java це ще й мова програмування. Це і цілий спектр інших технологій.

    Java це платформа, сучасна програмна платформа, за великим рахунком прагне замінити всі функції операційної системи. Можливо, це в недалекому майбутньому і відбудеться (хоча подібні спроби вже були, але провалилися). Основний коник Java платформонезавісимость, тобто незалежність програмних засобів, що працюють на віртуальній машині, від апаратного забезпечення та операційної системи.

    Слід помітити, що для платформи Java існує кілька десятків різних мов програмування. Деякі з них можуть компілюватися самим компілятором Java, інші ж здатні працювати безпосередньо з віртуальною машиною.

    Java молодша сестра Сі + +

    Дійсно Чи мова програмування Java веде своє походження від Сі + +? Скоріше ні, ніж так. Ідея Sun полягала в тому, щоб спростити навчання Java, зробивши її синтаксис схожим на той, що використовується в найбільш поширеному мовою програмування. Це повинно було в кінцевому підсумку стимулювати і спростити перехід на Java Сі-програмістів. У той же час в Java закладені ідеї і механізми, почерпнуті з ряду інших систем і мов програмування. Взяти хоча б контроль виходу за кордон масиву (Паскаль). Або той факт, що компіляція Java-програм є роздільної, класи розбиті по пакетах. Це є одним з варіантів модульного програмування (як, скажімо, в Модулі-2), що відрізняється від концепції незалежної компіляції файлів Сі + +. Деякі новації були взяті з невідомих широкій публіці мов і систем. До Наприклад, принцип інтерфейсу класів перенесено з мови Objective C, розробленого компанією NeXT. Механізм обробки виняткових ситуацій майже повністю запозичений з модулів-3. Засади внутрішньої реалізації такої важливою складовою мови Java, як збірка сміття, почерпнуті перш за все з Ліспу. Частина нормальних мов, таких, як Ейфель, Модула-3, Оберон, також спочатку мала в своєму розпорядженні цим механізмом.

    Узагальнивши сказане вище, можна зробити висновок, що Java увібрала в себе велику кількість ідей і підходів з різних систем програмування і в тому числі синтаксис мови Сі + +.

    Мова Java придатний тільки для аплетов та Інтернету

    Java нерозривно пов'язують з аплетах. І дійсно, аплети невід'ємна частина як мови, так і платформи Java в цілому. До того ж їх створення вдалий маркетинговий крок Sun. Без аплетов світ про Java не дізнався б так швидко.

    Ідея вбудованих додатків в гіпертекстові документи (HTML) не так вже й нова. Багато фірм намагалися просунути свої технології на цей сектор ринку, але в Нині конкурентів у Java тут небагато. На сьогодні це, мабуть, JavaScript, ActiveX і технологія Flash. Дві останні, щоправда, працюють тільки під управлінням Windows.

    Що залучає в Java програмістів? Потужна модель безпеки, єдиний код для всіх платформ, широкі можливості для використання готових бібліотек, простота програмування. Насправді все не так райдужно, як хотілося б. Модель безпеки, безумовно, не погана, але її реалізації, виконані тими чи іншими виробниками, розрізняються. У результаті код, прекрасно що працює під керуванням одного браузера, не працює під управлінням іншого. Ну, якщо в браузерах Java є, то як йдуть справи з додатками, які виконуються без браузера, а під керуванням віртуальної машини прямо в операційній системі? Тут ситуація схожа, в кожній сучасній ОС вже встановлена якась версія JVM. І користувачі здатні виконувати з її допомогою наявні у них програми для JVM, хоча більшість навіть не підозрює про такої можливості. Не слід забувати і про серверні додатки, що включають доступ до баз даних і мережеві додатки. І це основна сфера застосування технологій Java в даний час. Під цю класифікацію підпадають не тільки програмні проміжного рівня, але й самі серверні додатки. А якщо сюди додати ще й клієнтські програми або навіть аплети, то виходить повний комплект для автоматизації. Платформа Java це не тільки аплети. Вона застосовується повсюдно, починаючи від клієнта і закінчуючи сервером. А якщо згадати, що Java використовується не тільки на ЕОМ, а й у стільникових телефонах, побутовій техніці і смарт-картки, то складається враження, що вона вже проникла в усі сектори ринку, де хоч як-то можливе застосування програмування.

    Java ідеал, вона не потребує поліпшень

    Java була створена в 19941995 рр.. До цього моменту інформаційні технології набули інтенсивний розвиток як за рахунок персоналізації комп'ютерів, так і частково за рахунок розповсюдження Інтернету. Автори Java постаралися втілити в ній все досягнення інформаційної індустрії, але ідеал, як відомо, недосяжний. Дещо все-таки залишилося за бортом, у тому числі перевірка умов правильності виконання програми, програмування за контрактом, шаблони та ін У Сі + + існує засіб перевірки умов, зване asset. Ця функція перевіряє деякий умова, що задається програмістом, на істину. Якщо умова помилково, asset зупиняє програму і вказує, що допустимі умови роботи порушені, при цьому компілятор при створенні кінцевої версії програми виклики asset відкидає. У Java такої можливості не існує. Зрозуміло, можна використовувати перевірку умов і генерацію винятків на їх основі, але в результаті всі ці перевірки потраплять у виконуваний код програми. Існує більш потужна технологія, ніж asset. Це Design By Contract, програмування по контрактом, що дозволяє спростити створення великих програм, які використовують раніше створений код. Java ж не підтримує і програмування по контрактом. Шаблони класів в Сі + + це можливість генерації коду під вказаний користувачем клас (насправді розробники Java цілком усвідомлено відмовилися від шаблонів, вважаючи, що від них більше проблем, ніж користі. Прим. ред.). Колекція об'єктів, реалізована за допомогою шаблону, буде компілюватися кожен раз для кожного типу об'єктів, що зберігається в цій колекції. Типова колекція об'єктів в Java зберігає екземпляри класу Object, предка всіх Java-класів. Програміст, витягуючи об'єкти з колекції, змушений використовувати приведення типу, щоб скористатися своїм робочим класом. Таке додаток працює чудово до тих пір, поки інший програміст випадково не додасть до колекції примірник зовсім іншого класу. Тоді на етапі компіляції помилки не виникає, але вона відбувається пізніше, при отриманні примірника і спробі приведення його до невірного типу. В даний час Java продовжує розвиватися. Не виключено, що вже в найближчому майбутньому ми побачимо в ній деякі зі згаданих вище можливостей.

    Java коштує купу грошей

    Дійсно Чи справді технологія Java є дорогою? Все залежить від складності розробляється програмного забезпечення. Скажімо, для невеликого програми (від одного до трьох людино-місяців) Java може не коштувати взагалі нічого. Безумовно, абсолютно безкоштовною ця технологія не є. Кваліфікований Java-програміст коштує грошей. Існує і необхідність у засобах проектування додатків, профілювання Java-програм і в інших інструментах, які використовуються при створенні великих проектів. Але, взагалі кажучи, конкуренція на ринку подібного ПО досить висока, а отже, ціни знижуються. Вибір різноманітний, і розробник не прив'язаний до конкретної компанії.

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://www.i2n.ru

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status