Dnia Fri, 20 Oct 2006 12:36:31 +0200, Sebastian Kaliszewski skrobie:
> > Akurat informatyka jak zadna inna dziedzina przemyslu moze sie pochwalic calym
> > mnostwem rozwiazan, ktore zdobyly popularnosc wylacznie dzieki odpowiedniej
> > polityce marketingowej, a nie dzieki jakosci (jakosc zdobyly one pooxniej,
> > kiedy dzieki zwiekszonej popularnosci firmy mialy juz pieniadze na rozwoj):
> Chodzi o to, ze byly to jednak rozwiazania good enough.
Wiesz, to byly rozwiazania, ktore dzialaly. Ale nic ponad to.
> > 1. Procesory Intela (i Z80)
> Byly:
> a) pierwsze na swiecie
> b) tanie w produkcji
Byly, owszem, co wiecej, byly tanie w sensie osprzetu (np. Z80 nie potrzebowal
dodatkowych kombinacji z pamieciami dynamicznymi). Ale tez nie do konca,
niestety; procesory Intela byly drogie z poczatku, a w czasie popuarnosci
Amigi, za te same pieniadze, co peceta z herkulesem, mozna bylo miec Amige z
narzedziami do profesjonalnej obrobki grafiki. Procesory wowczas Motoroli tez
byly i tansze i wydajniejsze. Ale to sie szybko zmienilo.
> > 2.
komputery IBM PC i ich klony
> a) to jest przyklad na sile Open Source. IBM zrobil komputer OS i ten
> komputer wygral. Byl latwy w produkcji a czesci latwo dostepne.
Tak - mimo ze byly dostepne za dosc spore pieniadze. Ale to sie szybko
zmienilo; w czasach gdy firmy produkujace Amige dogorywaly po wypuszczeniu
Amigi 1200 i 4000, do tych sprzetow oferowano karty na chipsecie S3,
dwukrotnie wieksze i trzykrotnie drozsze, niz identyczne do peceta.
> BTW sam IBM potwornie sie przejechal, m.in na PC -- z firmyu komputerowej o
> rzad wielkosci wiekszej o konkurencji spadlo pomiedzy inne.
Owszem. Byla to ryzykowna taktyka; komputery zdobyly popularnosc, ale IBM nie
bardzo chyba wiedzial czym ryzykuje. W tych wlasnie czasach, gdy uzywano Amigi
1200, dowiadywalem sie z prasy, ze IBM juz od lat przynosi wylacznie straty.
> > 3. Java
> Java od poczatku rozwiazywala problemyu, ktorych C i C++ wowczas nie bylo w
> stanie w zaden sensowny sposob ruszyc.
Jakie na przyklad?
> > 4. Microsoft Windows
> Tu raczej konkurencja (w postaci IBM) dala ciala.
A owszem, owszem, niestety - glownie dzieki temu menedzerowi z ciastkarni,
ktoremu sie "wyrwalo", ze "IBM nie widzi sensu w braniu udzialu w wojnie o
desktop". Za jakis czas w prasie notatka "IBM wycofuje sie z produkcji OS/2".
I dalej poszlo z gorki (na sam dol). Mimo ze, jak slyszalem, byl to system
wielokrotnie lepszy od owczesnego Windows 95.
No i poza tym nikt inny nie probowal konkurowac w "wojnie o desktop". Zreszta
ta wojna tez nie byla do konca fair, jak wyczytalem w Wikipedii:
Wedlug doniesien CNET [2] miedzy firmami IBM i Microsoft doszlo do potajemnej
transakcji wartosci 800 milionow dolarow, ktora miala na celu "ustapienie
drogi" produktowi Microsoftu. OS/2 bedac znacznie lepszym systemem operacyjnym
przegral w nierownej walce.
[2] http://news.com.com/2100-1014_3-5771535.html
> >>>Glosy rzeczywistych uzytkownikow sie nie licza, bo
> >>>uzytkownicy dostaja produkt na talerzu (+ dobrze przygotowana papke
> >>>medialna) - w ten sposob kreuje sie te glosy a nie ich slucha.
> >>Oczywiscie, ze sie licza. Inaczej mielibysmy Enterprise Dynamic Extreme Java
> >>Beans 2007 oprate na Javie 1.1.
> > Nie widze zwiazku. Tworzenie Javy oparte jest na czystym planie biznesowym i
> > wyborze tego, co bedzie sie najlepiej sprzedawalo, a nie tego, co dostarczy
> > programistom narzedzie do szybkiego i sprawnego wykonania ich pracy.
> Akurat to co pozwoli szybko i sprawnie wykonac calosc projektu (nie tylko
> programisci sie tu licza!) bedzie sie dobrze sprzedawac.
Nie do konca. Czesto przy zakupie oszczedza sie na researchach w ten sposob,
ze bierze sie to, co juz jest popularne. Jesli jest jeszcze zadowalajace, to
ci, ktorzy decyduja o zakupie, niczego juz wiecej nie potrzebuja.
A ja wlasnie mam okazje sie przyjrzec jednemu projektowi aplikacji webowej w
Javie i caly czas mam wrazenie, ze naprawde, daloby sie to napisac krocej,
zwiexlej, czytelniej, ze znacznie mniejsza iloscia kodu. Takich kwiatkow jak
na thedailywtf.com to moglbym tam znalesc na peczki. No ale co z tego. Mozna
na to narzekac, ale pewnie lepszych nie ma. Jedyne rozwiazanie, ktore wybija
sie przez minimalna ilosc wymaganej pracy (i minimalna ilosc narzedzi) to Wt.
Ale Wt niestety jest napisane w bardzo paskudnym jezyku C++, wiec ludzie tego
nie uzyja, bo wola mieszanie Javy z PHP i reczne dlubanie w plikach XML.
> > Mozna
> > tak, bo ten ostatni czynnik jest praktycznie niemierzalny.
> Jest mierzalny. Mierzalne sa tez koszty utrzymania i debugowania aplikcaji,
> koszty bledow (zwlaszcza bledow bezpieczenstwa), itd.
Nie jest mierzalny. Chocby dlatego, ze tak sie przypadkiem sklada, ze sam
jezyk odgrywa w tym wszystkim niewielka role. W C++ jest wiele mechanizmow,
ktore potrafia zwiekszac bezpieczenstwo kodu. Problemem nie jest ich brak,
tylko ich niestosowanie. A dlaczego nikt tego nie stosuje. No coz, dobre
pytanie.
Zdecydowanie uwazam, ze w C++ za malo rzeczy podaje sie ludziom na tacy.
> W Tej dziedzinie Java wyprzedzila C++ o wiele lat. Dopeiro teraz C++ ja dogania.
Java jako "srodowisko programowania, system bezpieczenstwa, platforma, zestaw
bibliotek" - tu sie zgodze. Jako jezyk - niestety sie nie zgodze.
> > Jak sie przygladam stopniu komplikacji poszczegolnych rozwiazan okolojavowych,
> > to dochodze raczej do wniosku, ze zrobiono to raczej tak, zeby miec
> > rozwiazania "prosta sciezka" (niezaleznie od tego, jak kreta), a jakiekolwiek
> > zboczenie z tej sciezki prowadzi albo w maliny, albo w miejsca, z ktorych
> > wydostanie sie przekracza mozliwosci percepcyjne czlowieka (co zreszta na
> > jedno wychodzi).
> W przypadku paskudztw w rodzaju roznych WebLogicow i tym podobnego badziewia
> masz racje.
Jest jeszcze tego znacznie wiecej, ale owszem, wlasnie to mialem na mysli.
> Ale rozwiazania okolodzawowe to takze Eclipse, NetBeans, rozne narzedzia do
> przekladania UML Java (obustronnie), itd...
Te ostatnie to pominmy, bo po pierwsze, UML-a trzeba jednak traktowac troche
mniej powaznie, niz wiekszosc ludzi probuje, a po drugie, jesli chodzi o
narzedzia do UML-a, to z moich obserwacji nie zauwazylem, zeby jakiekolwiek
narzedzie UML-owe generujace kod nie obslugiwalo C++.
Co do Eclipse i NetBeans, to obejrzalem na razie tylko ten pierwszy, musze
przyznac jak na razie jedyny produkt Javowy, ktory zrobil na mnie
oszalamiajace wrazenie. Ale jako IDE jest dla mnie troche marne, bo mialem
powazne problemy z dostosowaniem go do mojego projektu (inna sprawa, ze akurat
robilem to w CDT, o ktorym slyszalem, ze nie jest wysokich lotow).
> > Tak, ale to jest znane juz od dawna. Pomyslano rowniez o wielu innych
> > udogodnieniach. To swiadczy o tym, ze zmiany w nastepnym standardzie sa
> > podyktowane wylacznie praktycznym spojrzeniem na jezyk i doswiadczeniami w
> > pracy z tym jezykiem.
> Caly czas mam wrazenie ze sa robione wyrywkowo. Brak ogolnej wizji i planu.
Ogolnej wizji, tzn. czego na przyklad? Oczywiscie, ze wiele propozycji wyglada
na wyrywkowe, bo potrzebne sa po prostu takie wlasnie wyrywkowe poprawki na
najbardziej uciazliwe problemy. Natomiast ogolny plan bedzie mozna zrobic
dopiero wtedy, gdy bedziemy wiedzieli, jakie opracowane rozwiazania mamy do
dyspozycji.
> Tu ktos nadeslal proposal zeby zrobic automatyczne typowanie,
ta propozycje widzialem chyba juz dwa lata temu.
> tu ktos inny
> doslownie w ostatnij chwili dopycha variadic templates (na dobra sprawe to
> juz chyba po ustalonym przez komitet terminie na zmiany w samym jezyku),
Nie wiem, czemu tyle z tym zwlekali. Moim zdaniem jest to wzorcowy przyklad
dobrze zaprojektowanego ficzera, posiadajacego na dodatek referencyjna
implementacje (ktora osobiscie pomagalem testowac). Nie mozna przeciez
oczekiwac, ze opracowywanie ficzerow pojdzie od razu szybko i sprawnie; lepiej
zeby sie to lekko przeciagnelo, niz zeby mial wejsc do standardu kulawy
ficzer.
> czy beda jakiekolwiek atomiki nie wiadomo, itd...
Podobno maja byc, ale na razie zapomnialem linka (mam u siebie na komputerze,
ale poszedl do serwisu, poza tym jestem teraz w okregu Dallasowskim :).
> > Java jako jezyk (nie mowie o technologiach, bibliotekach
> > i innych osprzetach) jest znacznie zapoxniona technologicznie w stosunku do
> > biezacego C++, nie tylko do C++0x.
> ROTFL!
> C++ bez GC, watkow, atomikow,
To jest kwestia wsparcia platformy, a nie samego jezyka. Co do tego juz
mowilem, to jest prawda - C++ wymaga jeszcze duzo pracy, zeby te kwestie
doprowadzic do porzadku.
> z dziurawym systemem typow
To niby Java ma mniej dziurawy system typow? Niby w ktorym miejscu?
Tylko nie wyjezdzaj mi tu z reinterpret_cast, bo cie wysmieje.
> i UB na kazdym kroku
Fakt, przydaloby sie zmniejszyc ilosc tych UB i komitet nad tym pracuje.
Oczywiscie czesci z nich nie uda sie zlikwidowac nie narazajac sie na
dodatkowe koszty, dlatego tez bedzie istnialo cos takiego jak
"conditionally-supported behavior", czyli inaczej mowiac, zwalenie problemu na
implmentacje i platforme.
> jest w tyle nie tylko za Java.
Ale jak na razie tylko Java go wyprzedza.
> Templaty, ktore w kazdym bardziej rozbudowanym uzyciu wymuszaja kod write
> only (tak jak w Perlu ;-P ) a kompilatory maja wlasne zdanie na temat
> roznych konstrukcji.
Rozmach w uzyciu wzorcow w Boost zdaje sie niestety przeczyc twoim teoriom.
Fakt, ze maja tam wiele konstrukcji warunkowych, ale nie az tyle przede
wszystkim nie
... wiecej »