-
X-Received: by 10.49.58.140 with SMTP id r12mr1289378qeq.35.1360696474700; Tue, 12
Feb 2013 11:14:34 -0800 (PST)
MIME-Version: 1.0
X-Received: by 10.49.58.140 with SMTP id r12mr1289378qeq.35.1360696474700; Tue, 12
Feb 2013 11:14:34 -0800 (PST)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!goblin1!goblin.stu.neva.ru!p13no13551359qai.0!news-out.google.com!k2ni
24985qap.0!nntp.google.com!p13no12332575qai.0!postnews.google.com!hl5g2000vbb.g
ooglegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Tue, 12 Feb 2013 11:14:34 -0800 (PST)
Complaints-To: g...@g...com
Injection-Info: hl5g2000vbb.googlegroups.com; posting-host=80.254.146.36;
posting-account=jr5y-woAAAAWidgVjrSJ6j8m650CTb-v
NNTP-Posting-Host: 80.254.146.36
References: <f...@g...com>
<keuri4$nje$1@somewhere.invalid>
<1...@g...com>
<keuusd$ovj$1@somewhere.invalid>
<7...@g...com>
<kf1b5r$cvj$1@somewhere.invalid>
<51152b96$0$1306$65785112@news.neostrada.pl>
<3...@x...googlegroups.com>
<4...@g...com>
<kf61vl$fh0$1@somewhere.invalid>
<c...@g...com>
<kf8mrj$piq$1@somewhere.invalid>
<3...@g...com>
<kf9c7i$61o$1@somewhere.invalid>
<8...@g...com>
<kfbuak$lvs$1@somewhere.invalid>
<0...@g...com>
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like
Gecko) Chrome/24.0.1312.56 Safari/537.17,gzip(gfe)
Message-ID: <5...@h...googlegroups.com>
Subject: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
From: Andrzej Jarzabek <a...@g...com>
Injection-Date: Tue, 12 Feb 2013 19:14:34 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:202025
[ ukryj nagłówki ]On Feb 12, 9:19 am, Maciej Sobczak <s...@g...com> wrote:
> W dniu wtorek, 12 lutego 2013 00:19:46 UTC+1 użytkownik Andrzej Jarzabek napisał:
>
> > No to odpowiem: ty nie dałbyś, ale kto inny dał. Tajemnica wyjaśniona?
>
> Nie bardzo. Kiedyś pewien akwizytor do mnie zapukał i chciał mi coś sprzedać
> powołując się na fakt, że mój sąsiad też kupił. Zgadnij, jaki osiągnął sukces.
Jak będę kiedyś chciał ci coś sprzedać, to może się zainteresuję.
> > > Poza tym, że obiektowość powstała z myślą o dużych systemach
> > W którym momencie?
>
> W takim, że w małych nie było powodów, żeby powstała.
Kto konkretnie, kiedy i co takiego zrobił z myślą o dużych systemach?
Bo mi wygląda na to, że opowiadasz o wymyślonej przez siebie historii
OO, a nie tej, która faktycznie miała miejsce.
> > > i sama w sobie nie ma cech, który by były z nimi sprzeczne.
> >http://c2.com/cgi/wiki?ArgumentsAgainstOop
>
> Przewinąłem losowo i trafiłem na argument "OO runs too slow",
[...]
> Przewinąłem losowo i trafiłem na argument "Everything has to be an object".
Poszczególne argumenty odnoszą się do różnych definicji
obiektowości...
> Jeżeli chciałem pokazać, że na absolutnie każdy temat można znaleźć
> w necie stronę zatytułowaną "Why XYZ sucks", to wiem, że można.
Chodzi o to, że różnie można interpretować "cechy sprzeczne".
Technicznie nawet assembler nie posiada cech sprzecznych z dużymi
systemami, skoro istnieją duże systemy napisane w assemblerze.
To czy owo może posiadać cechy przeszkadzające albo pomocne w pisaniu
dużych systemów, ale to kategorie subiektywne - cechy przeszkadzające
komuś lub pomocne dla kogoś.
> > > Jeśli coś ma być inaczej, to ma być po coś i ma się opłacać.
>
> > A dlaczego akurat to dynamiczny, a nie statyczny system typów to jest
> > "inaczej"?
>
> Bo rozmawialiśmy o możliwości wprowadzenia nowego języka w miejscu,
> gdzie używa się czegoś mainstreamowego - w domyśle Javy lub C++.
To nie ta odnoga dyskusji :)
Przy takim pytaniu nie da się przecież odpowiedzieć abstrakcyjnie:
zarówno C++ jak i Java mają swoje ograniczenia, każdy projekt ma swoje
okoliczności. Jeśli np. chcesz mieć UI w przeglądarce, to możesz
zaimplementować go:
* w dynamicznym Javascript
* jako aplikacja flashowa w dynamicznym actionScript czy jak to się
tam nazywa
* jako applet Javowy
* w C++ jako komponent ActiveX
Nie powiesz chyba, że skoro używasz już C++ albo Javy, to rozwiązanie
z tym właśnie językiem jest oczywistym wyborem.
Inny przykład, tym razem z osobistego doświadczenia: miałem rozbudować
możliwości programowania narzędzia testowego napisanego w Javie.
Zdecydowałem się zrobić to przez dodanie DSL-a. Żeby zrobić to szybko,
postanowiłem zaimplementowac embedded DSL i wybrałem do tego język
Groovy, który ma dynamiczny system typów. Z różnych względów Groovy
nadaje się świetnie do osadzania DSL-i w programach Javovwych -
wystarczy zlinkować program z jednym JAR-em, który jest dostępny w
standardowych repozytoriach (my używamy Mavena), poza tym jest
interpretowany i użytkownik może sobie program w DSL-u napisac w pliku
i uruchomić go tym narzędziem testowym - żadna faza kompilacji nie
jest potrzebna. Poza tym ma dynamiczny meta-object protocol jako część
owego dynamicznego systemu typów, przez co świetnie się nadaje do
pisania DSL-i. Pewnie dałoby się mieć język statycznie typowany,
który się równie dobrze, a może nawet lepiej nadaje do pisania DSL-i -
ja wiem o Haskellu, ale nie znam Haskella, a Groovy trochę znam i
nawet mam (kupioną w tym celu) książkę o pisaniu DSL-i w Groovym, poza
tym Haskell nie jest na JVM więc musiałbym wszystko posklejać i
dołączyć kompilator Haskella do projektu. W statycznie typowanej Javie
ani nawet w statycznie typowanej Scali nie dałoby sie zrobić równie
dobrego i wygodnego w użyciu DSL-a.
Czy w takiej sytuacji byś uznał, że wprowadzenie języka dynamicznie
typowanego do projektu w mainstreamowej Javie ma sens?
> Taki był mniej więcej klimat w tym wątku i generalnie takie są realia na rynku.
No bo Pythona czy Ruby to się w ogóle na rynku nie spotyka.
> > > Statyczne typowanie ma swój koszt. Pytanie, jaki jest końcowy
> > > bilans.
> > I uważasz, że potrafisz ten bilans policzyć?
>
> Nie, ale oczekuję tego od kogoś, kto mi reklamuje nowe rozwiązanie.
Na ten temat musisz porozmawiać z tym, co ci reklamuje.
Nawiasem mówiąc, w nawiązaniu do odnogi dyskusji o wprowadzaniu
języków programowania przez programistę, najlepszy sposób uwalenia
dowolnej inicjatywy innowacyjnej to zażądanie przedstawienia bilansu.
Na zasadzie: "postawiliśmy checkboxa dla Scali bo ma lambdy? Proszę o
konkretny dowód na to, że języki z lambdami są mniej błedogenne niż
języki bez lambd".
Wagi przy checkboxach dają dodatkową zabawę "prosze mi pokazać
metodologię, z której wyliczyłeś, że pattern matching ma relatywną
wagę 2.7".
Bo bilans wyciągnięty z odbytu to każdy potrafi pokazać.
Następne wpisy z tego wątku
- 12.02.13 22:28 Andrzej Jarzabek
- 12.02.13 22:42 M.M.
- 12.02.13 23:27 AK
- 12.02.13 23:32 AK
- 13.02.13 00:25 M.M.
- 13.02.13 01:02 Roman W
- 13.02.13 01:03 Roman W
- 13.02.13 05:37 Andrzej Jarzabek
- 13.02.13 06:31 Andrzej Jarzabek
- 13.02.13 07:11 Roman W
- 13.02.13 09:09 Adam Wysocki
- 13.02.13 10:10 Maciej Sobczak
- 13.02.13 10:29 Maciej Sobczak
- 13.02.13 14:00 Michal Kleczek
- 13.02.13 14:56 Piotr Chamera
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-24 Czy Sejm RP zahamuje proceder zabijania dla organów?
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=