BgLOG.net
By TeodorGig , 3 August 2006
Софтуерната индустрия, за кратния период на своето съществуване, претърпява едно изключително бурно развитие. Производството на софтуер е лесно достъпно и не изисква колосални инвестиции, какъвто е случаят с производството на електроника. Степента на достъпност е толкова висока, че силно мотивиран тийнейджър, разполагащ с личен компютър и свободно време в излишък, може да се превърне в производител. Точно тази достъпност прави пазарът на софтуерни продукти изключително наситен и то в условията на една жестока конкуренция.


Производството на софтуер за персонални компютри е толкова силно развито, че навлизането на този пазар е почти немислимо, докато софтуерът за мобилни устройства все още не е толкова разпространен. Все пак, какви са предимствата да се създава приложен софтуер примерно за мобилни телефони:


1. Мобилните телефони станаха популярни в последните няколко години и все още няма толкова много написан софтуер за тях.


2. Липсва стандартизация, което позволява силно сегментиране на пазара и намаляване на опасността от конкурентни продукти.


3. Ограничаване на възможностите за софтуерно пиратство, поради намаленият сегмент от потребители.


4. Броят на потребителите използващи персонален компютър е приблизително десет пъти по-малък от броя на потребителите използващи мобилен телефон. В България на около 400 000 собственици на персонален компютър съответстват около 4 000 000 притежатели на мобилен телефон.


5. Писането на софтуер за мобилни устройства изисква изключително добри умения, тъй като става въпрос за устройства с относително слаби процесори, с ограничено количество памет, така че за да се получи добър продукт няма място за излишни редове код.

6. Тъй като мобилните телефони са комуникационни устройства, то използването на комуникация между отделните потребители би могло да направи софтуера изключително привлекателен за по-голяма група хора.


7. Наличието на микро-разплащания, базирани на SMS съобщения, би могло да направи софтуера значително по-изгоден от страна на печалбите в сравнение с продуктите предназначени за персонални компютри.


Без съмнение бъдещето е посветено на все по-миниатюрните устройства с все по-големи възможности, доближаващи възможностите на персоналните компютри. В близките години все повече софтуер ще се създава точно за такъв вид устройства, което ясно показва едно печелившо направление в което да се развиват умения по програмиране.


Тодор Балабанов - teodorgig@mail.ru
Legacy hit count
698
Legacy blog alias
8258
Legacy friendly alias
От-персоналните-компютри-към-мобилните-телефони
Компютри
Програмиране
Софтуер
Разработчици

Comments

By koumynyka , 26 May 2006
Защо се дънят компютърните програми

Юдаизъм: Не трябва да се задава въпросът защо се дънят програмите. Трябва да се чака новата версия!

Католицизъм: Първата програма беше безгрешна. Но когато се опита да работи на компютър Apple, започна да се дъни. Всички програми са версии на първата програма и съхраняват нейните грешки с цел съвместимост.

Православие: Не трябва да се задава въпроса защо се дънят програмите. Да се ползват нови версии (особено западни) също не трябва. Не трябва да се интересуваме дали дадена програма работи или не. От значение е само какво става след нейната де-инсталация.

Протестантство: Програмистът така обича своите програми, че им позволява да се дънят и успиват. И въобще, трябва да се обръща повече внимание на неработещи програми. Това, естествено, няма да ги поправи но пък е доходоносно.

Свидетели на Йехова: Само ние притежаваме истинската програма, премахваща всички софтуерни проблеми. И сме готови да я предложим на всички практически безплатно. Но тя няма да работи ако вие не повярвате, че тя наистина поправя всякакви софтуерни проблеми. Ако сте я инсталирали, а проблемите не са исчезнали, значи вие не сте повярвали в нея.

Мормони: Програмите се дънят, защото ги пускат на неправилни компютри. Правилни компютри имаме само ние! Съвсем близо сме до момента в който ще разберем как да ги включим.

Мюсюлмани (сунити): Ако дадена програма греши, то тя е невярна. Невярните програми трябва да се изтриват. Безпогрешни са само вярните програми. Ако вярната програма казва, че 2 по 2 прави 5, то всички програми даващи други резултати грешат.

Мюсулмани (шиити): Само един програмист е писал вярни програми. Вярни са също така и техните следващи версии. Всички останали програми са невярни по определение.

Индуизъм: Програмите се дънят поради това, че в тях е имало грешки още преди тяхната инсталация, когато са били други програми на други компютри. След де-инсталация те отново ще станат други програми и ще се дънят заради сегашните си грешки. Коригиращи версии няма да помогнат защото всичко е предопределено.

Будизъм: Програмите се дънят поради това, че вие си задавате този въпрос. Грешно е да се стремиш към избавяне от софтуерните проблеми чрез коригиращите версии - те просто ще умножат проблемите. Няма никаква разлика между софтуер и хардуер, програма и програмист. Програма, избавена от проблеми изпада в нирвана. Програмите изпаднали в нирвана не се дънят защото няма нужда да работят.

Дзен-будизъм: Дъни ли се програма, която разпечатва сама себе си? Как изглежда програма, незаписана на нито един дисков носител? Веднъж един ученик попитал своя учител как да се избави от грешки в програмите и учителя му дал вируса CIH. Един друг ученик казал на учителя си, че иска да има програми без грешки.
- Глупак! - извикал учителят, - А защо не искаш грешки без програми? - и ударил с Уинчестър-а си ученика по главата.
Ако вие още не сте получили просветление, няма за какво да говорим.

Даоизъм: Програмна грешка, която може да се открие не е истинска програмна грешка. Коригираща версия, която е възможно да се напише не е истинска коригираща версия.

Конфуцианство: Програмите се дънят поради неразбирането на ред неща. Вкички опити да се поправят програмите с помоща на коригиращи версии (както правят западните варвари) противоречат на етикета и трябва да се избягват. Единствено напълно-мърдият ще осъзнае истинския смисъл и необходимост от способността на програмите да се дънят.

Сатанинство: Всяка програма има право да се дъни. Срамът от програмните грешки е християнска пропаганда.

Растаманство: О, и програмите ли? А откъде си намират трева?

Атеизъм: Вярата в така-наречената "коригираща версия" на дадена програма е заблуда на потребителя. Способността на програмите да грешат - това е обективен природен закон и в случая нищо не можеш да направиш.

Социализъм: Програмите се дънят поради неравенството. Различните програми имат различен размер, разширение и се нуждаят от различно количество памет. Коригиращите версии не биха помогнали в борбата срещу програмните грешки защото отстраняват последствията а не причините за възникването им. Всички програми трябва да се уеднаквят, да се унищожат всякакви опрационни системи освен една, да се изземат всички PC от потребителите и вместо тях да се внедри един главен компютър.

Комунизъм: Програмите се дънят поради вредителство! Да се разстрелят програмистите. За всеки случай, да се разстрелят и производителите на компютри. Въобще, защо са ни някакви си там програми? Та ние вече си имаме Програмата на Партията!

Нацизъм: Програмите се дънят поради същата причина поради която и няма вода - евреите!

Фройдизъм: По принцип, всички графични среди (като Windows например) са предназначени главно за разглеждане на порно-снимки. А текстовите редактори - за порно-текстове. А езиците за програмиране - за написване на графични среди и редактори, използвани за разглеждане на порно-картинки и порно-текстове. Ако програмите се използват за други цели - то те неизбежно се дънят.

Екзистенциализъм: В края на краищата не ни интересува защо се дъни дадена програма. Ако вие задавате такъв въпрос, то значи вече имате и коригираща версия.

Феминизъм: Програмите се дънят поради дискриминация на разширенията! И въобще, всичко това са го измислили шовинистическите свине от потдръжката, дето се боят да не би да загубят работата си.

Сексуални малцинства: Да се каже за дадена програма че се "дъни" - това е оскърбителен предразсъдък! Това е просто една особеност в повече с която междувпрочем може да се гордееш. Всъщност, такива особености имат и много знаменити програми като Microsoft Windows, Netscape Navigator и Borland Delphi!

Организации против абортите: Дънещите се програми също имат право на инсталация!

Green Peace: Програмите се дънят поради замърсяването на околната среда! Преди 500 години, когато промишлеността не е тровела Земята, никой и не е чувал за софтуерни проблеми. Нима не е така?


Legacy hit count
789
Legacy blog alias
6762
Legacy friendly alias
Защо-се-дънят-компютърните-програми
Компютри
Забавление
Програмиране
Разработчици

Comments

By bogomil , 17 April 2006
Отдавна не бях писал в БГЛог, не защото не искам, а защото няма време и всичко около мене се равива с главоломна скорост (малко над звуковата).

Чудя се, зашо хората ползват РНР, според вас това на какво се дължи? Ползвате ли РНР, как, защо, от колко време?

Отговорите, които са изкренни ще получат награда от УебТех 2006.

Айде със здраве.

Бого
Legacy hit count
860
Legacy blog alias
6037
Legacy friendly alias
-Сам-съм-други-няма-
Програмиране
Разработчици

Comments1

assenoff
assenoff преди 20 години
Айде да се отчета с изказване без задълбочаване (изкушавам се) ...
Защото е прекалено популярен, има достъпно инфо и сума ти допълнения и екстри писани наготово ... И колкото и да не ми се иска, се налага да продължаваме по избраният път (Bulfleet)

Иначе - само Perl :)

Кога дойде пак време за уебтех 06? Ц-ц-ц ... този път ще трябва предварително нещо да си уговоря срещичките, че миналият никой не познавах и много хаотично подходих.

Марио Асенов
By TeodorGig , 13 March 2006
Една интересна презентация, която може би ще бъде полезна като пример при други разработки:

 Пазар и свобода при софтуерните продукти
Legacy hit count
805
Legacy blog alias
5249
Legacy friendly alias
Пазар-и-свобода-при-софтуерните-продукти
Ежедневие
Размисли
Компютри
Интернет
Програмиране
Нещата от живота
Коментари
Софтуер
Разработчици

Comments2

assenoff
assenoff преди 20 години
Много би ми било интересно да разбера "пълнежа" на тази по обективна необходимост сбита прецентация, Тодоре!

И ми е познат един от използваните източници :)

Със здраве, Марио Асенов
bogomil
bogomil преди 20 години
И на мене би ми бил много интересен.
By TeodorGig , 2 March 2006
Съвсем на скоро, в един от български форуми се появи мнение под заглавие: “Сега разбрах за нечитаемия код:))” [1]. Още с първото изречение авторът излага малко шеговито своята теза: “Хватката е, че така се битонираш във фирмата.” Въпреки че това твърдение не звучи сериозно при първото прочитане изглежда в него има определена доза истина.
В своят уеб блог Frank Sommers [2] ни разказва за някои от митовете свързани с качеството на програмния текст при създаването на софтуерни продукти. Позицията му е ясна и точна: Качеството на програмния текст не оказва пряко значение за качеството на крайния продукт. В основата на тази теза е заложено твърдението, че крайният продукт (под формата на изпълним код) преминава една финална технологична преработка, а именно компилация или интерпретация.
Важно е да направим уточнение, че под качество на програмния текст разбираме стила на писане, именоване на отделните елементи в текста и структурирането на кода, а не наличието да дефекти в програмата (бъгове). Базирайки се на това важно уточнение съвсем спокойно можем да кажем, че за крайният потребител и всички останали, с изключение на програмистите подържащи продукта, е напълно без значение по какъв начин е написан кода, стига продуктът който получават да отговаря на изискванията и очакванията им.
В подкрепа на твърдението, че качеството на програмния текст не оказва директно влияние за качеството на крайния продукт, можем да отбележим, че клиентите получават не самият програмен текст, а изпълнимия код. Съвременните среди за разработка многократно оптимизират програмните текстове при превръщането им в изпълним код. Компилаторите и интерпретаторите могат да създадат еднакво добре работещ изпълним код, независимо дали програмният текст е бил с високо качество или не.
Кой всъщност се интересува от качеството на изпълнимия код? Единствените пряко засегнати са самите програмисти. Добре написания код улеснява тяхната работа по поддръжката или разширяването на функционалността в системата. Въпреки това, високото качество на програмния код не води до директно повишаване на печалбата. Често мениджърите, притиснати от стриктните крайни срокове и жестоката конкуренция на пазара, оказват влияние върху програмистите, принуждавайки ги да създадат готов продукт в кратки срокове, пренебрегвайки нуждата от добре написан програмен текст.
От своя страна, маркетингът се интересува единствено от това да разполага с готов продукт, продуктът да бъде на пазара в подходящия момент и по възможност дефектите в продукта да бъдат по-малко или относително незабележими.
До колко програмистите пишат труден за разбиране код, с цел да направят труда си уникален и труден за разбиране от техните колеги, е въпрос на личен морал. Въпреки това, добрите програмисти се стремят да създават лесен за разбиране и поддръжка код, защото това улеснява и собствената им работа.
До каква степен трудния за поддържане код може да запази работата ни зависи единствено от мениджърите на средно и висше ниво, които би трябвало да се предпазват от създаването на “незаменими” служители, носещи повече усложнения за целите на организацията, отколкото ползи.
Тодор Балабанов - teodorgig@mail.ru

Информационни източници:
1. “Сега разбрах за нечитаемия код:))”, Dir.bg Клубове
2. Frank Sommers, “The Code Quality Myth”, Artima Developer

 

Legacy hit count
1786
Legacy blog alias
4966
Legacy friendly alias
Високо-качество-на-програмния-код---наистина-ли-се-нуждаем-от-него-
Компютри
Интернет
Линукс
Програмиране
Софтуер
Разработчици

Comments2

rammstein4o
rammstein4o преди 20 години и 2 месеца

За съжаление аз се сблъсках челно със точно този проблем... Преди мен във фирмата в която работя е имало един хубусник който така хубаво е оплел един проект че няма накъде повече...

Наследявал е класове на 5-6 нива само за да получи някъква си там функционалност на най-горното... Хардкод-вал е разни неща от сорта на "Ако id-то на еди кво си е 3 начи правиш еди кво си..."
Познайте ако недай си боже тва нещо престане да е с id = 3 кво става... 

На мен ми трябваше месец и нещо само за да открия някаква, макар и минимална логика в този код. За радост сега вече (около 3 месеца по късно) работя почти без да се замислям със него и кадето имам възможност и време го оправям...

Моето мнение е че лошо написания код  е нож със 2 остриета... наистина при някой фирми може да те "битонира" на работа, но при сериозните фирми в които работят добри програмисти най-много да спечелиш подигравки и уволнение...

Terkoto
Terkoto преди 20 години и 2 месеца
Тази статия е пълна глупост поради следните няколко прости причини: 1) Много фирми пишат код, който смятат да поддържат, използват и (дай боже) продават дълго време след това. 2) В много фирми (в чужбина, не у нас) има стриктни ограничения върху времето, което един програмист може да прекара на дадена позиция във фирмата. След това или го повишават, или му прекратяват договора. 3) От (1) и (2) следва, че кодът ще се поддържа от много програмисти в течение на времето, и не всички от тях ще са достатъчно опитни. 4) Изискванията за стил на кода, периодичните прегледи на кода (code review-та), QA контролът и т.н. не са измислица на синдикатите за откриване на повече работни места, а точно добре обмислена методика за справяне с проблемът, който може да се появи в (3), ако някой пише спагети код или нечетими и некоментирани шифрограми. 5) В много случаи правилата за писане на код спестяват и време. Елементарен пример: добра практика е сравняванията в C/C++ да се пишат така, че константните изрази да са от лявата страна на оператора за сравняване ==, а не от дясната. Така се изключва възможността някой да изтърве едното равно и да превърне оператора за сравнение в оператор за присвояване, който (както всички сигурно знаем) връща резултат и напълно безпроблемно може да се ползва в условни конструкции и други места, където се изисква rvalue. Последното често води до труднооткриваеми логически грешки, които за разлика от синтактическите не прекъсват процеса на компилация и могат спокойно да "живеят" в крайния продукт и търпеливо да дочакат момента, в който да съсипят цялата привидно работеща система. 6) Да, наистина за компилаторът "if (a == 5)" и "if (5 == a)" са едно и също (въпреки, че може да генерират малко по-различен асемблерен код в зависимост от оптимизацията), но "if (a = 5)" е напълно валидна (макар и грешна от гледна точка на целта й) C/C++ конструкция, докато "if (5 = a)" е синтактична грешка във всички C-подобни езици. Виж (5) 7) Ако пишеш програма от рода на Notepad наистина няма значние колко четлив ти е кодът. Когато обаче пишеш нещо от рода на MS Office значението е очевидно. Ако набързо напраскаш някакъв "пач", колкото да пробуташ кода на клиента, то след това се почва едно роене на версии: в едната пача превърнат в "хубав" код, но пък допълнен от нови 10 пача; в друга първите 3 пача превърнати в четлив код, но последните 6 пача не; в трета пачовете са пачнати допълнително поради недостиг на време за превръщането им в "хубав" код... 8) Добрите менаджери много добре знаят за (1)-(7) и не позволяват на подчинените им да пишат бози и спагети. Добрите менаджери обаче са твърде малко :(
By micromax , 1 March 2006

Преди няколко месеца реших да се занимавам с Java малко по-сериозно. Накупих си доста книжки, намерих си удобен редактор и седнах да се уча. Малко след това пък започнахме да го учим и в университета и ми дойде точно навреме.

Млако по-късно пък си говорехме с един приятел в ICQ за дотнет. Той ми каза, че било много по-добро от Джава и да го пробвам обезтелно. Оки. Купих си книжка. Взех си Визуал Студио 2005 и започнах. Сега какви са ми впечатленията.

Засега Дот.Нета бие Джавата по доста показатели(поне за мен. Като се има в предвид краткият ми опит с 2та езика)

Както повечето от нас знаят, Джава е създадена от Сън доста годинки преди Дот.Нет Като идея е била нещо наистина революционно за времето си. Еднакъв код да се изпълнява на много платформи, стига те да разполагат с виртуална машина да го преведат. От това идва и един голям недостатък свързан с по-бавното изпълняване на програмите.

Докато четох "Да мислим на Java" направих няколко паралела между този език и PHP. Според мен PHP доста по-добре се е реализирал като език за програмиран в УЕБ. Доколкото разбирам това са искали да постигнат хората от Сън с проекта си.

Дот.Нет е измислен от Майкрософт, но е бил предложен на европейската комисия по стандартизация(дано да не бъркам за името). Това не означава, че Майкрософт държи правата за този език. При предлагането му на тази комисия той вече става стандарт и се откъсва от Майкрософт. В момента този стандарт съществува както за Майкрософт платформи, така и за Линукс. Може да го има и за други платформи. Не съм толкова запознат.

Че какво прави Майкрософт с това "чудо" и защо ми харесва повече:

Има .exe на изпълнимите файлове :) Малко, но важно за мен подобрение. Аз като начинаеш на Джава в началото се чудех как да си направя файл с подобно разширение.

Виртуалната му машина(в дот.нет не се казва точно така а беше нещо с друго име,  но за мен със същата ф-я) и компилатора му са по-добре реализирани и програмите на дот.нет вървят по-бързо отколкото на Джава.

В него абсолютно всичко е обекти(В Джава примитивните типове не са)

Възможност за използване на няколко езика за програмиране в един проект.

Наличието на асемблита(най-общо казано това са *.dll i *.exe файловте). Всяко асембли си има номер и уникален идентификатор, който го прави различен от всяко друго асембли. Така по много елегантен начин е решен проблема с длл файловете с еднакво име. (същият този проблем е и основна причина много хора да псуват уиндоуз като бъгава). Всяка програма си ползва асембли от определена версия. Може в системата да има няколко асемблита с еднакви имена, но тъй като те са различни версии не се препокриват и не си пречат. Това кара програмите да не забиват заради грешни длл-и и прави уиндоуса по-стабилен.

 Има и други, но в момента не се сещам. Тези са нещата, които в началото ми направиха най-голямо впечатление.

Какво харсвам в Джава пък:

Все още мобилните телефони работят с Джава и ако реша да си правя някакво приложение за телефона си(който не е с Уиндоус 2003 примерно) трябва да ползвам Джава.

Все още не съм запознат как стои въпроса с дот.нет и уеб програмирането и има ли в дот.нет нещо  от сорта на аплетите в Джава. 

Тя все пак е първа. Иноватор е и трябва да и се отдаде заслуженото уважение.

В университета продължаваме с Джава и така ли иначе продължавам да се занимавам с нея.

В момента работя паралелно и с 2те среди. Да си призная везните се накланят в ползва на дот.нет заради компилатора на майкрософт на С#(както и на други езици подържащи стандарта(J#, ASP.NET...))  - Visual Studio 2005 .

Ползването на Visual Studio 2005 ми доставя по-голямо удоволствие. Хелпа му е страхотен. Малките неща улесняващи програмирането като изкачащи полета до всеки метод, скобите за големите блокове от текст....има БЕЗПЛАТНА версия(може и да е ограничена и направена само за зарибявка, но все пак е нещо).

Сега за заключение да повторя, че съм начинещ и в 2та езика и може да допуснам грешки. Ако е така няма да се разсърдя ако ги поправите. Ще се зарадвам ако допълните списъка с характеристики и да кажете кое предпочитате вие и защо.

А  и впечатленията ми от .net са придобити главно от работата ми с C#. Искам да вмъкна това, да не би да си направите извода, че не правя разлика между С# и .net

Legacy hit count
2319
Legacy blog alias
4949
Legacy friendly alias
Java-vs--NET
Невчесани мисли
Коментари
Разработчици

Comments14

BULCORE
BULCORE преди 20 години и 2 месеца

само една забележка колкото да покажа че съм прочел статията

"Дот.Нет е измислен от Майкрософт, но е бил предложен на европейската комисия по стандартизация(дано да не бъркам за името). Това не означава, че Майкрософт държи правата за този език." 

Дотнет е платформа. ( Не го пиша за да се заяждам ). В тази платформа се включват компилатори за различни езици и CLR (което е същото като JVM).

Terkoto
Terkoto преди 20 години и 2 месеца
Пробвай Eclipse. Иначе това е съвсем повърхностен анализ на двете. И даже ти сравняваш Java езика и .NET платформата. Нищо за разликите в самите езици, освен че .NET приложение можеш да направиш на .exe и да му добавиш .dll без да се притесняваш за конфликти. Да се надяваме, че някой начинаещ дето се чуди с к'во да се занимавам не го прочете това че ще остане с грешни впечатления. Иначе е похвално, че си се опитал да направиш сравнение. Просто следващия път по разпитай насам натам къде какво. Ясно е едно: .NET изглежда по завършен за разлика от Java-та. Ами така ще, защото срещу ИДЕ-то дето идва с дот нет-а имаш само компилатор-а на Java. (и компилатор-а на дот нет се разпространява безплатно). А далаверата че можеш да правиш .exe-та въобще не е далавера, щото за тях пак ти трябва .NET фреймуърк-а. Същото е възможно и с Java-та, просто намери правилния инструмент. Със здраве, и без лоши чувства
Terkoto
Terkoto преди 20 години и 2 месеца
Много слабо! Бълвоч.
micromax
micromax преди 20 години и 2 месеца

Rumen тогава съм се объркал. Правя разлика, но си и признах, че съм начинаещ. Няма нищо лошо в критиките. Нали целта е да научим нещо ново.

А и за коментара на първият анонимен, започнах това сравнение без никаква предварителна подготовка. Всичко което казах е от обща култура и не съм го проверявал и повечето е прочетено от тук от там.

Виж сега знам вече нещо ново и наистина е имало смисал. Ще се радвам ако има и нови коментари

Terkoto
Terkoto преди 20 години и 2 месеца
Пич, изпаднал си в много големи заблуди. Ето ти малко инфо, та да разсееш някои от тях: ASP.NET не е език от .NET семейството, а .NET еквивалента на JSP/Servlet технологията на Java. Самите ASP.NET страници можеш да ги пишеш на C#, VB.NET, JScript.NET, IronPython, Tcl.NET, COBOL.NET, Fortran.NET и какъвто още там .NET език ти хрумне. Visual Studio .NET 2005 не е компилатор, а среда за разработка (IDE). Също както Eclipse, NetBeans, IntelliJ IDEA и т.н. са среди за разработка на Java, които ползват Ant скриптове за да компилират приложенията, VS прави nmake файлове, които подава на командните компилатори и след това гледа изхода за грешки и ти ги показва. Трите среди за Java, които ти изредих, по нищо не отстъпват по функционалност, "малки помощи за програмиста" и т.н. от VS.NET, а напротив - IntelliJ IDEA е толкова по-напред от VS, че едва ли някога MS ще я стигнат по функционалност (Eclipse и NetBeans също са напред, но са с отворен код и MS винаги могат да краднат нещо от тях и да изравнят нещата) Програмите на .NET се изпълняват по-бързо от програмите на Java, защото .NET виртуалната машина е JIT (just-in-time), което ще рече, че програмите първо се превеждат на асемблерен език за съответния микропроцесор, след което се изпълнява директно този асемблерен код на максимална скорост. Също съществува възможност програмата изцяло да се преведе на машинен език по време на инсталация в GAC. Java виртуалната машина на Sun е КОФТИ (дори МНОГО КОФТИ) реализирана, и HotSpot технологията им е пълен боклук. Сложи си JIT виртуалната машина на IBM или виртуалната машина на BEA и гледай разлика в производителността! .NET-а прави EXE-та не защото те ще могат да се изпълняват навсякъде (изпълняват се само на машини, които имат .NET runtime), а защото EXE форматът (известен още като COFF - Common Object File Format) е стандартният файлов формат за Windows, а както можеш да се сетиш M$ не са тръгнали да правят реализацията си на .NET за нещо друго от Windows (при все, че имат един Rotor, който е имплементация на .NET за FreeBSD). Самият EXE файл, в който има .NET сглобка (assembly) е доста по-раличен по структура от EXE файловете, съдържащи машинен код. От друга страна Java архивите (JAR, WAR, EAR и т.н.) са просто ZIP файлове със сменено съдържание, поради което са много по-преносими от EXE-тата на различни платформи. За Windows има програми, които могат да пакетират JAR файл в EXE. MS са стандартизирали в ECMA само и единствено IL (Intermediate Language) - езикът на виртуалната машина. Другото не е стандартизирано, което се вижда и в зле написаната класова система в .NET 1.1. Java виртуалната машина има едно голямо предимство пред IL-а на MS - тя НЕ е обектно ориентирана. IL инструкциите на .NET могат да зареждат и викат виртуални методи на класове, нещо крайно нетипично за един асемблерен език. По тази причина JVM се реализира сравнително лесно, дори и само с електроника. Sun имат микропроцесори, които изпълняват директно Java байтов код. Едно време дори се опитваха да убедят всички, че бъдещето принадлежало на тънките Java клиенти, които зареждат една мрежова JavaOS и я изпълняват на подобен микропроцесор. За щастие идеята им не просъществува дълго :) Имаше също и смарт карти с Java процесори, които също нещо поотмряха. И понеже JVM се прави лесно, то на пазара е пълно с телефони, каклулатори, часовници и не знам си какви още устройства, които поддържат Java MicroEdition с хилядите му различни профили, и има значително по-малко телефони и други преносими устройства, които разбират .NET Compact Framework (мобилната версия на .NET). Просто последните искат значително по-мощни процесори и памет, за да изпълнят IL JIT-ера. Айде, със здраве.
Terkoto
Terkoto преди 20 години и 2 месеца
Забравих само да кажа, че .NET не е измислен от Microsoft, а от Borland, като последните са били принудени да го продадат на Microsoft в много ранен етап. Също така C# и Visual Studio .NET и следващите му версии са дело на Anders Hejlsberg, главният дизайнер на любимите ни Turbo Pascal и Delphi. Приликите между .NET и Object Pascal на Delphi никак не са случайни :) Ако някога си писал на Delphi и си се чудил защо Borland чакаха чак до Dephi 2005 за да направят хубава .NET поддръжка, то отговорът е прост - в споразумението с MS, когато са им продавали .NET (или както се е казвал там преди MS да почне да го маркетира под това име) е била включена клауза, според която Borland нямало да правят RAD среди за .NET определен брой години, докато MS си маркетират Studio-то.
Terkoto
Terkoto преди 20 години и 2 месеца
Абе микромакс. Марк Твен е казал: It is better to be silent and thought a fool than to open your mouth and remove all doubt. В превод на български: По-добре е да мълчиш и да те мислят евентуално за глупак отколкото да си отвориш устата и да разсееш всички съмнения. Размислите ти за кафето срещу .минет просто са поредният резултат на неспазването на тази максима.
Terkoto
Terkoto преди 20 години и 2 месеца
Абе микромакс. Марк Твен е казал: It is better to be silent and thought a fool than to open your mouth and remove all doubt. В превод на български: По-добре е да мълчиш и да те мислят евентуално за глупак отколкото да си отвориш устата и да разсееш всички съмнения. Размислите ти за кафето срещу .минет просто са поредният резултат на неспазването на тази максима.
micromax
micromax преди 20 години и 1 месец
anonymous от кога некомпетентноста по даден въпрос те прави глупак?
maria_mir
maria_mir преди 20 години и 1 месец
Напълно излишни спорове на ..биииип.. програмисти. За какво са заяжданията като може просто да се правят коментари по темата. От къде тази злоба? Anonymous защо просто не пуснеш нова публикация по темата? С удоволствие ще я прочета.

Terkoto
Terkoto преди 20 години и 1 месец
Направи ми впечатление един от анонимните коментатори: "Java виртуалната машина има едно голямо предимство пред IL-а на MS - тя НЕ е обектно ориентирана. IL инструкциите на .NET могат да зареждат и викат виртуални методи на класове, нещо крайно нетипично за един асемблерен език. По тази причина JVM се реализира сравнително лесно, дори и само с електроника. " Не ми стана много ясно, какво имаш предвид под това, да се реализира само с електроника? Изцяло схемно решение ли?
Terkoto
Terkoto преди 20 години и 1 месец
Само един кратък съвет към micromax. Download Borland JBuilder Foundation безплатно и се наслаждавай на програмирането на Java.
micromax
micromax преди 20 години и 1 месец
На Borland съм пробвал JBuilder X,но не знам коя версия точно. Нв твърдя, че е чак толкова дървена, но редактора на майкрософт ми се струва по-добър. А и не оставайте с впечатлението, че не харесвам Java. В университета програмиране главно на нея и я намирам за много приятна за писане.
Terkoto
Terkoto преди 19 години и 5 месеца
А бе много програмисти се навъдиха в коментара по темата. Вместо да уважавате желанието на човека да сподели радостта си от това което е научил и желанието му да го сподели с вас вие само се правите на дървени философи. Какво само се заяждате. Мястото ви не е тук а в някоя мрачна семинарна зала да слушате по цял ден философски беседи. Искате ли да ви кажа нещо?!! Когато си купих книгата на Марко Канту (носител на наградата Spirit of Delphi, виден програмист и автор на множество книги и публикации, понастоящем преподавател в университет в Италия) - Мastering Delphi. Нито бях чувал за ООП нито за това каква е разликата между IDE и COMPILER. Но това не ми пречеше да пиша сносни приложения на този език. Днешните езици от високо ниво съчетани с добра литература ви дават възможност да си пишете готини програмки дори и да не знаете терминологията към съответния езис или ИДЕ. Поощрете човека че се е потрудил! Да това от моя страна си е заяждане с хората които не поущряват чуждия труд. Тези хора са прочели там нещо си и се мислят за много вещи в Джава областта и се надуват - а в същото време са неграмотни в други области на информатиката (в това число и аз). Но не е това начина не ПЛЮЙТЕ човека а му ОБЯСНЕТЕ. Анадъмно!
By TeodorGig , 17 February 2006

... трябва да комуникират програмистите в България? 

На вън е приятно слънчев зимен ден. По всичко си личи - зимата бавно се оттегля, въпреки че ще са нужни поне още два месеца за да се поздравим с действителната пролет. Не зная защо, но денят ми започна доста криво, може би защото некомпетентността на служителите в отдел “Личен състав”, в организацията където работя, успя да ми създаде твърде неприятни емоции.
 
Очевидно не бе ден за работа, а от горе на всички и петък. Замислих се, заслужава ли си да работя точно за тези хора и то точно за тези малки суми? От мисъл на мисъл и от идея на идея, отново стигнах до бързо преглеждане на обявите в не без известния портал JOBS BG. Прелиствам аз страниците с обявите и чета, но в един момент се улавям, че чета само на английски. Казвам си: Боже, аз в България ли се намира или в Обединеното Кралство, може би САЩ, Канада или Австралия?
 
От много време не ми прави впечатление дали пред очите ми стои текст написан на английски или на български. Дори когато се замисля, ежедневно изчитам три пъти повече чуждоезични текстове, отколкото текстове написани на български.
 
Въпреки всички това, редно ли е обявите за работа в България да бъдат написани на английски? За какво братята Кирил и Методий отдадоха живота си за запазването на българската самоидентичност, под заплахата от византийско интелектуално владичество, след като векове по-късно родният ни език се измества от английския, под влиянието на фирмени мениджъри със съмнителна грамотност.
 
Не рядко ще чуете, същите тези HR мениджъри, да ви заявяват, че ако една обява не можете да си прочетете на английски то не сте за тяхната фирма! Не им се подавайте, това е едно удобно оправдание да ви дискриминират по националност, потъпквайки безогледно най-висшия закон в страната, а именно Конституцията. Ами какво биха казали тези мениджъри, ако им заявим, че ние обявите от английски можем да си ги прочетем, защото всеки грамотен човек, в 21 век, се предполага да владее на добро ниво поне един чужд език, но просто не желаем да четем тези обяви написани на език различен от родния ни?
 
Вярно, езиковите умения на служителите във всяка една фирма са от голямо значение, но за удостоверяването им, всеки от нас е способен да представи дипломата си за завършено образование, в която диплома е вписан хорариумът на изучените часове чужд език. Много от нас желаят да бъдат добри професионалисти и също така си осигуряват сертификати за владеене на чужд език. За какво тогава фирмите в България не ползват родния ни език в обявите за работа?
 
Ако се зачетете из някой от Интернет форумите за програмисти, ще откриете една още по-жестока истина за съответните HR (HR - human resources или на чист български - личен състав) специалисти. Те до толкова не си вършат работата, че гледат от чуждестранни уеб страници и копират обявите почти едно към едно. Срамно е, че не пожелават да си дадат поне малко труд и да преведат на български нещата, които плагиатстват.
 
Споменавайки темата за директно откопираните обяви е хубаво да се замислим, а какво всъщност е казано във всички тези обяви и защо срещаме изявления от вида:
 
http://www.jobs.bg/f98324
 
We offer:
1. Attractive remuneration package;
2. Excellent working conditions;
3. Dynamic and exciting job in a friendly team environment;
4. Corporate training and professional development;
5. Work in a highly qualified team of professionals.
 
Да, може би всичките тези изброени неща са валидни за фирмата, която е съставила текстът на тази обява, но дали те са валидни и за българската фирма, откопирала съдържанието на оригиналната обява?
 
Някога лъгали ли сте шефът си или гаджето си? Наблюдавали ли сте реакцията на този шеф/гадже, когато осъзнаят, че сте ги излъгали? Хареса ли ви тяхната реакция? Мога да си представя какви са отговорите ви на поставените въпроси. Защо тогава всички ние си мълчим, пред подобни обяви и не реагираме адекватно, когато установим, че това което обявата обещава няма нищо общо с реалната ситуация в съответната фирма?
 
Програмисти или не, българският език не е толкова лош, а за добро или лошо все още е единственият официален език на Република България. Нека поне за момента бъдем българи и не забравяме делото на братята Кирил и Методий.
 
Тодор Балабанов
 

Legacy hit count
865
Legacy blog alias
4680
Legacy friendly alias
На-какъв-разговорен-език----
Размисли
Компютри
Интернет
Линукс
Политика
Литература
Програмиране
Нещата от живота
Коментари
Софтуер
Разработчици

Comments

By TeodorGig , 16 February 2006
Често чета поредното компютърно списание и виждам поредната алгоритмична задача (най-често комбинаторика или някой NP сложен проблем) и се питам, за какъв дявол хората правят такива състезания, а пък други хора вземат участие в тях?
 
Няма да скрия, че програмирането е предимно хоби за мен. Никога не съм имал успехи в споменатите състезание, но за сметка на това винаги ме е учудвало каква е ползата да се участва в тях.
 
В един хубав ден, един мой преподавател ми обясни, че върхът на алгоритмичните задачи е в динамичното програмиране. Там се използва определена рекурентна зависимост (най-трудният момент от решението), на база на която се спестяват голяма част повторни изчисления. Въпреки завидните способности на моя преподавател аз така и не разбрах как мога правилно да съставям тази зависимост и да я прилагам за задачи, които не сме разглеждали в час.
 
Но дали програмирането е само алгоритми и дали състезанията по програмиране трябва да акцентират върху детерминистични задачи, за които е известно, че съществува оптимално решение? Не съм съвсем убеден! Реших да разгледам това, което предлагат ACM. Всички задачи които ми попаднаха бяха от вече споменатия тип.
 
И все пак, какъв е смисълът от състезанията по програмиране? Да се покажеш колко си велик? Да покажеш колко по-зле са останалите около теб? Не вярвам! Може би точно състезанията по програмиране са старта на една блестяща кариера в областта на професионалното програмиране! Определено бих предпочел да си мисля, че става въпрос точно за тази, последно споменатата, алтернатива. Странно, защо тогава състезанията по програмиране толкова много се различават от реалната работна практика в софтуерните фирми? Въпреки, че в някои състезания се залага на екипната работа, в българските състезания никъде не се предлага възможност отделните екип да преминат през един цялостен процес за разработка на софтуер. Къде остава анализа на заданието? Къде е мястото на проектирането? Тъй като не можем без кодиране, то винаги присъства. Защо не се отделя достатъчно внимание на документирането? Ами последващата поддръжка на продукта? Всяка софтуерна фирма би ви обяснила, че това са етапите през които преминава тяхната работа.
 
Иска ми се да вярвам, че в най-скоро време в България ще се появят състезания по програмиране, които ще дават възможност за съревнование между напълно завършени продукти, написани от същите тези състезатели, които в момента решават алгоритмичните задачи на ИТ списанията в страната. Вярвам, че това би било много важна стъпка в развитието на българската софтуерна индустрия, защото ако се замислим колко български open source продукта са налични в световната мрежа, с чиста съвест може да се срамуваме, сравнявайки се с далеч по-малки държави от България, които имат смайваща продукция в областта на софтуера с отворен код.
 
Апелът ми, а вярвам и апелът на всеки състезател по програмиране, към българските фирми, организатори на конкурси по програмиране, е да се насочат към спонсорирането и финансирането на състезателни екип, които извършват цялостна разработка на малки, но смислени, софтуерни продукти.
 
Ще се радвам, ако всеки един от вас сподели мнението си и заяви своята съпричастност към тук изложената идея, като напише своя коментар към темата.
 
Тодор Балабанов

Legacy hit count
1046
Legacy blog alias
4661
Legacy friendly alias
Защо-младите-хора-участват-в-състезания-по-програмиране-
Ежедневие
Компютри
Интернет
Линукс
Програмиране
Софтуер
Разработчици

Comments2

BULCORE
BULCORE преди 20 години и 2 месеца

Основната причина да участвам в подобни състезания е наградния фонд , макар че честно казано досега не съм печелил нищо особено.

Иначе ако има състезания в които се включва проектиране и анализ на цялостен софтуерен продукт ,определено шанса за добро класиране ми се увеличава доста. 

Идеята за спонсориране на отбори е много добра, обаче не ми харесва сравнението за open source-а. Това не е никакъв критерий. България разполага с много и качествени програмисти които не си губят времето да пишат код от който няма да спечелят нищо освен може би слава и лично удовлетворение. Само че тези неща се ценят в държави където не се бориш за преживяване. Май трябва да напиша отделен пост в което да споделя мнението ми за отворения код.

Terkoto
Terkoto преди 19 години и 11 месеца
Тодоре, да те питам аз тебе , защо се провеждат турнирите по шах ? защо има световно първенство по футбол ? защо смяташ че при програмистите не може да има competition? Защото Тодоре, хората дето ходят по такива състезания показват че имат подходящ начин на мислене, могат за кратко време да решават проблеми от познат характер... и после отиват да работят за мс или гугъл например , а ти стоиш тука и хабиш байтове да пишеш глупости. ВИНАГИ ТРЯБВА ДА ИМА СЪРЕВНОВАНИЕ! Какви са тези състезания които предлагаш ? Какво ще сравняваш там? Представи си се направи един такъв конкурс и се появят два отбора , едните са седели 3 месеца и са писали мощен редактор на изображения (използвали са c# например), а другите са писали писали уеб приложение (използвайки ruby например). Айде ходи ги сравнявай ... състезанието си е състезание , то е за тези които са по-добри от другите ... както един може да ходи да рита мач в парка с другите лумпени , така друг може да се занимава професионално ... а ти Тодоре , ти дори топка май не си виждал :-Д