Re: W czym Windows 8 jest lepszy?

Autor: Radosław Sokół <Radoslaw.Sokol_at_grush.one.pl>
Data: Fri, 07 Dec 2012 11:57:54 +0100
Message-ID: <k9si3i$qq8$1@node1.news.atman.pl>
Content-Type: text/plain; charset=UTF-8; format=flowed

W dniu 04.12.2012 14:08, R.e.m.e.K pisze:
> Wszystkiego nie wymieni, owszem, ale czesc kolekcji (jesli jest rzeczywiscie
> kinomanem) z pewnoscia tak.

Na liczby bezwzględne to? Kilkanaście pozycji? Kilkadziesiąt?
Jak często je będzie oglądał? Jaki wpływ - bo trzeba w końcu
znów nawiązać do tego, od czego ta dyskusja się zaczęła - bę-
dzie to miało na generowany ruch przy odczycie z dysku średnio
na sekundÄ™ w aspekcie miesiÄ…ca?

> Brak Ci bakcyla, ktory posiadaja kolekcjonerzy i kinomani, a wbrew pozorom w

A to zdecydowanie. Ba, brak mi w ogóle bakcyla do filmu, bo
w większości tych, które ostatnio widziałem, zauważałem wię-
cej pędu do kasy niż do sztuki. Oczywiście znajdą się też
perełki, ale im dalej w przeszłość, tym częściej, niestety.

> tej dzialce jest ich wielu. Poza tym miedzy DVD a BR ogladanym na
> projektorze roznica jest rowniez bardzo duza, wynika nie tylko z

Cóż, wierzę na słowo. No i zależy od odległości od ekranu,
bo przy odpowiednio dużym ekranie i siedzeniu nieco dalej
znów się te szczegóły tracą. No i w domowych warunkach
bardziej może przeszkadzać kontakt na ścianie niż kodek ;)

(no dobrze, kinomani pewnie mają wysokiej jasności ekrany
rozwijane ;) )

> rozdzielczosci ale tez lepszych kodekow. To samo dotyczy sciezki dzwiekowej,
> na dobrym sprzecie roznica jest wyrazna.

Ale nie na zasadzie audiofilów, którzy "są" w stanie roz-
poznać pozłacane końcówki kabli?

> Mam 120Mbps, rzeczywistosci nie naciagam, jesli koniecznie chcesz moge
> zrobic kilka screenshotow. Oczywiscie nie wszedzie mozna uzyskac takie
> transfery, ale spotykam sie z nimi nader czesto.

Obstawiałbym wręcz, że z zagranicy rzadziej niż częściej.
Ale może masz faktycznie wyjątkowo dobre łącze. Tylko to
bym znów w kategorii wyjątków umieścił, bo nie miałem nig-
dy takich doświadczeń jako informatyk przecież, a przez ja-
kiś czas też zawodowy administrator sieci.

> Tak, chodzi glownie o duze pliki, ale problem ze zdefragmentowanym

No właśnie.

> Konkretnie, gdy zapuszcze kopiowanie duzych plikow (po kilka GB) to caly
> system (gdy dysk nie jest zdefragmentowany) dostaje czkawki. Gdy go
> zdefragmentuje to kopiowanie duzych plikow nie wplywa tak bardzo na reszte -
> co jest oczywiste, glowice mniej wariuja.

Kopiowanie to *szczególny* przypadek *całkowicie* sekwencyj-
nego dostępu. I zdajesz sobie pewnie doskonale sprawę, że de-
fragmentacja pomaga *tylko* na dostęp sekwencyjny. Czyli od-
powiedź już mamy.

Jeżeli kogoś praca polega na kopiowaniu plików (a to będzie
rzadkość) to zyska na defragmentacji. W *normalnej* pracy
biurowej, programistycznej, administracyjnej -- nic nie daje :)

> No coz poradze, ze nie znasz nikogo kto pasjonuje sie filmem :-)

Zdecydowanie. Co też jest pewnym wyznacznikiem jak to popu-
larne hobby.

> Co to za argument, ze jest obcy? To nie ma zwiazku. Tym sposobem skreslasz
> wszystkie inne jezyki niz C i C++. Z Linuksa tez, bo wszak takze pisany w C.

Ale ile jest tych języków *natywnych* innych niż C, C++ i
Pascal obecnie? W zasadzie w mało czym innym się dzisiaj pi-
sze. Jedyne alternatywy to Java i .NET, ale to języki kompi-
lowane JIT, więc zupełnie inna działka. I mają też swoje
problemy z bezpośrednim dostępem do Win32 API. Wszystko inne
to albo języki interpretowane, albo bazujące na Javie i .NET.

A tak swojÄ… drogÄ… to Javy i .NETu nie lubiÄ™ ;) Ale dzisiaj
chętniej bym pisał program w C#, niż w Delphi.

> Nigdy nie odczulem tego problemu, nie mowiac o katordze. Nie liczac

Przykład pierwszy: alokacja pamięci. Wiele funkcji Windows
nie przyjmowało poprawnie bloków pamięci alokowanych na sto-
sie, trzeba było alokować ze sterty i zwalniać. Nie powiem
dlaczego, bo to było w czasach Delphi 2.0, byłem jeszcze głę-
boko na studiach (albo i wcześniej) i nie miałem takiej wie-
dzy jak dzisiaj, żeby to diagnozować. I nawet mnie się to wy-
daje dziwne, bo pamięć to pamięć przecież. Ale w C nie było tego
problemu w ogóle.

Przykład drugi: wywoływanie funkcji z dowolnych DLLek niesy-
stemowych. Zawsze były z tym jakieś problemy, przy czym naj-
prościej było zawsze użyć FindProcAddress() i załadować cał-
kowicie dynamicznie dany podprogram niż próbować zrobić so-
bie deklarację podprogramu odwołującą się do DLLki z linko-
waniem podczas uruchamiania.

> moduly z naglowkami windowsowego API i uzywa sie ich naturalnie, jak funkcji
> samego Delphi. Tylko w przypadku lancuchow zamiast klasycznego, pascalowego

Dokładnie -- ale problem był, gdy trzeba się było odwołać
do czegoś, do czego nie ma standardowych modułów interfejsu.

> stringa stosuje sie typ PChar (null terminated string, dostepny w delphi od
> zarania).

Wiem. I tu właśnie też był problem, bo trzeba było konwerto-
wać między tymi różnymi stringami, bo z kolei sam VCL używał
pascalowych. A konwersje stringów to ostatnia rzecz, którą
chce się robić pisząc wydajne programy.

> PajÄ…czek (a takze Macromediowy Homesite)

Pajączka doskonale pamiętam, pisałem o nim książkę nawet...
Koszmarny program, z niestandardowym interfejsem i powolny
jak jasna cholera. Od razu się zorientowałem, w czym powsta-
awał -- po samym wyglądzie.

> Jabber

W sensie? Serwer?

> 40tude (uzywany przezze mnie klient nntp

Koszmarny, niestandardowy interfejs.

Reszty albo nie znam, albo kojarzÄ™ tylko z nazwy (poza The
Bat i Total Commanderem -- te znam). I generalnie te, które
kojarzę mają właśnie interfejs nie zrobiony wprost na wzór
Windows, tylko nieco "inny", albo zbyt prymitywny, albo z
kolei na siłę ulepszany elementami dostępnymi w Delphi.

Oczywiście Delphi jest tu o tyle lepsze od starych wersji
Visual Basic na przykład, że aplikację Delphi często się
pozna po użytkowaniu, a aplikacje VB zawsze i od razu po
uruchomieniu ;)

> Wiesz, ze w Delphi da sie nawet pisac drivery systemowe? Sam tego nie
> robilem, ale sa o tym informacje w sieci.

Ja pisałem w Delphi też sporo, od aplikacji GUI (najpierw
VCL, potem Win2) aż po aplikacje tekstowe, bez interfejsu.
Ale w C++ pisze mi siÄ™ o *niebo* lepiej.

> Zapomniales dopisac: klas. Bo wielodziedziczenie interfejsow jest, od
> zawsze.

Z interfejsami to żadna filozofia w zasadzie.

> A poza C++ nie ma tego chyba nigdzie (wielodziedziczenie klas). To jest
> kontrowersyjna funkcjonalnosc i nie jest niezbedna, a na pewno wnosi sporo
> problemow.

Zgadzam siÄ™ -- ale jest przydatna. W tych konkretnych przy-
padkach, w których można ją sensownie zastosować ogranicza
bardzo dużo nakład pracy.

Poza tym dziedziczenie wielobazowe jest niezbędnym elementem
programowania uogólnionego z szablonami zasad (policy-based
templates) -- czegoś, czego znów nie ma chyba w żadnym języku
poza C++, a co jest narzędziem *niesamowicie* mocnym.

Generalnie możliwości metaprogramowania C++ nie ma żaden
język chyba.

>> 2) Brak przeciążania operatorów (o ile widzę to już to
>> poprawili, w całości?).
>
> Jest od kilku wersji.

Chwała im za to.

> Nie wiem co masz dokladnie na mysli. Wszystkie struktury typu lista, slownik
> indejsuja od zera. Tablice (array[x..y]) indeksuja tak jak w ich deklaracji
> nakazesz, mozesz nawet indeksowac po literach alfabetu. Tablice dynamiczne
> (array of) indeksuja domyslnie od zera.

Pascal historycznie zawsze indeksował od 1, choć pozwalał
ręcznie zmienić podstawę indeksowania -- wiem o tym, przecież
jeszcze pisałem w TP :) Dlatego też tak go lubią matematycy
-- zwykła tablica zachowuje się jak matematyczny wektor.

Ale dobrze, że bardziej rozbudowane struktury już normalnie
indeksujÄ… od zera.

> Mnostwo? Jest typ string, podstawowy od poczatku, uzywa sie go

Owszem. Jeszcze z TP. Max 255 znaków i stała zajętość pamięci
:) W Delphi co prawda wreszcie rozszerzyli go tak, że może
mieć prawie dowolną długość.

> wszechstronnie i najczesciej, poza nim jest WideString (w praktyce rzadko
> uzywany, zfodny z systemowym multibyte strinigiem). No i PChar, czyli null

Dziwne, w obecnych aplikacjach Win32 powinno się używać wy-
łącznie UCS-2 (a więc WideString). Sam starałem się zawsze
wykorzystywać jak najszerzej Unikod w aplikacjach, a obecnie
już tylko jego używam (poza oczywiście przetwarzaniem danych
w czystym ASCII czy UTF-8).

> terminateed string. Typ natywny string jest o tyle dobry, ze ma wbudowane

PChar nie jest niczym więcej niż wskaźnikiem na znak, o ile
pamiętam? Czy obudowali to w końcu w klasę?

> PChara (bez zadnego kopiowania i alokacji). PChar jest od zawsze i nigdy nie
> bylo klopotu z nim na styku z WinAPI. Nie wiem skad te rewelacje czerpiesz.

Akurat z PChar nie było, jak się już do niego skonwertowało
zwykłego stringa, a potem w drugą stronę znowu odbiło. Ale
może teraz wreszcie wrzucają ten jeden bajt zerowy w stringu
i problem zniknÄ…Å‚ :)

> choc mozna. Ale w rzeczywistosci nadal na tych pointerach pracuje tylko je
> kamufluje. Przykladowo:

Wiem -- natknąłem się na to w czasach Delphi właśnie, gdy się
pojawiły po raz pierwszy poważniej klasy tworzone przez class,
a nie object. I trochę to wprowadzało zamieszania, bo nagle
coś, co było dynamicznie alokowane zachowywało się tak, jakby
było normalnie ze stosu.

> Tak, preprocesora nie ma. Dyrektyw kompilacji jest sporo, choc nie tyle co w
> C/C++. Za to czas kompilacji jest rewelacyjny, np. u mnie 1,5 miliona linii
> kodu w 10 sekund :-)

LLVM podobno też bardzo szybko kompiluje. Ale czas kompilacji
nie jest aż tak istotny przecież -- lepsze narzędzia często są
wolniejsze od gorszych :)

> I niczego zbyt powaznego nie wykazales (przynajmniej powaznego w
> zastosowaniach biznesowych).

Czy gdzieś napisałeś, że mam wymieniać tylko wady w zastoso-
waniach biznesowych? Wydaje mi się, że nie...

Poza tym w biznesie masz w zasadzie JavÄ™, JavÄ™ i tylko JavÄ™.
Miałem ostatnio okazję rozmawiać z ludźmi z IBMa właśnie o
C++ i Javie i wyraźnie stawiają na to drugie. O Pascalu to
nawet nie wspomnieli słowem ;)

> Delphi korzysta z dodanej przez producenta biblioteki VCL (visual component

Wiem.

Do dzisiaj pamiętam jak walczyłem z edycją pozycji w List
View. Jedna opcja kompilacji powodowała, że całe VCL w tym
jednym miejscu się krzaczyło bez wyraźnego komunikatu co
jest nie tak.

> tworzenia okien i kontrolek, z nich powstale exe ma rzeczywiscie sporo
> mniejsza objetosc. Tylko jakie ma znaczenie 5MiB w te czy w te, gdy pisze
> sie duze programy?

Bo jednak VCL dużo rzeczy robi na własną rękę, pomijając
API. I potem wiele rzeczy albo działa wolniej, albo źle
wyglÄ…da na ekranie.

Do dzisiaj pamiętam, że aplikacje Delphi w Windows robiły
jakieÅ› dziwne numery z animacjÄ… okien wprowadzonÄ… w Windows
95 bodajże. Bo VCL nie tworzył normalnego okna głównego
aplikacji, tylko coś z nim kombinował i otwierał jeszcze
jakieś okna ukryte. I potem te animacje albo nie działały,
albo pojawiały się nie tak, jak miały.

> Popularnosci... hm... znow naciagasz fakty. Jesli spytasz tych wszystkich
> userow smartfonow i tabletow (na ktorych przedtem ekstrapolowales) o RMS to
> zmienisz moze definicje slowa "popularnosc". W kazdym razie odsetek bedzie
> znikomy.

Zgadzam się. Ale chodzi mi o popularność w *środowisku*.
Popularność wśród ludu liczy się tylko dla celebrytów chyba :)

-- 
|""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|
| Radosław Sokół  |  http://www.grush.one.pl/              |
|                 |                                        |
\........................................................../
Received on Fri 07 Dec 2012 - 12:00:04 MET

To archiwum zosta³o wygenerowane przez hypermail 2.2.0 : Fri 07 Dec 2012 - 12:42:01 MET