Article View: pl.comp.lang.c
Article #267789Re: Ciemna strona C++
From: Sektor van Skijlen
Date: Thu, 22 Nov 2007 07:44
Date: Thu, 22 Nov 2007 07:44
99 lines
5899 bytes
5899 bytes
Dnia Wed, 21 Nov 2007 23:00:26 +0100, Seweryn Habdank-Wojewódzki skrobie:
> Witam
> Sektor van Skijlen wrote:
> > Ale jeśli wydaje ci się, że języki, których standardy są robione
> > równolegle z referencyjną implementacją, nie posiadają idiotyzmów, to
> > jesteś w błędzie.
>
> C++0x powoli dorabia sobie reference implementation w postaci gcc 4.3 :-).
> To dla tych co narzekają, że komitet wymyśli coś czego nie da się
> zaimplementować.
O właśnie!
Bronek: może tam w komitecie ktoś rozważa propozycję, żeby gcc stało się
oficjalną dla X3J16 referencyjną implementacją do C++0x?
Tak w ogóle mi się zresztą przypomniało, że miałem jakiś kod, który kompilował
się normalnie, a nie kompilował się w ConceptGCC.
> > Efekt jest taki, że zamiast skupić się w trakcie "dewelopmentu" na tym,
> > żeby przynajmniej działał optymistyczny scenariusz, a wszelki "error
> > handling" odłożyć na później, pierwsza rzecz, z którą muszę walczyć, żeby
> > mi się kompilował kod, to z zaprogramowaniem polityki obsługi błędnych
> > sytuacji przez wyjątki. Zazwyczaj efekt jest tego taki, że polityka
> > obsługi błędów jest odwalona na kolanie i zrobiona na łapu-capu, bo
> > chciałbym jak najszybciej, najtańszym kosztem otrzymać wreszcie coś, co
> > mogę sprawdzić, czy zechce działać.
> He, he. A kto potem wraca, aby zrobić refaktoring? Jak "działa" to lepiej
> pisać nowe ficzery niż poprawiać politykę obsługi blędów, czy nie ;-)?
Nie nie, nie o takie rzeczy chodzi.
Mnie potrzeba napisania SZYBKO i przetestowania SZYBKO kodu, który obsługuje
optymistyczne scenariusze. Wiadomo, że NIE MOŻESZ przecież doprowadzić kodu do
release'u, jeśli nie dorobisz obsługi pesymistycznych scenariuszy i nie
zaprogramujesz error-handling - ale w C++ to jest rzecz, którą można odłożyć
na później. Od tego ewentualnie są code reviews, i testy jednostkowe, żeby
zgubione error handlingi wyłapać.
Ale w dzisiejszym podejściu do oprogramowania najważniejsze jest DEMO. Czyli
działająca aplikacja, którą można pokazać klientowi, że mniej więcej tak to ma
działać. Ale uprzedza się, że to jest na razie posklejane drutem i jakość
produkcyjną osiągnie dopiero za jakiś czas.
> > Nawet już są narzędzia, które to robią,
> Jakie?
Nie wiem, czy nie Klocwork - mówię to z głowy, więc może i nie ma. Wydawało mi
się, że widziałem zgłaszane problemy z unexpected exception, ale nie dam
głowy.
Zresztą, jeśli nie ma, to może chwilowo nie ma zapotrzebowania (właśnie przez
to, że nie ma tylu wyjątków :).
> > A co jeszcze ciekawsze, nie wszystkie wyjątki w Javie wymagają jawnej
> > obsługi. Czyli - ścisłe, ale nie do końca?
> Może zarzucić jakimś krótkim kodem? Z tego co pamiętam to rzutowania na zły
> typ powodują paskudne skutki (NullPointerException).
Każda metoda domyślnie przepuszcza RuntimeException (a jak ta, to wszystkie
jej pochodne, w tym NullPointerException). I nie ma sposobu, żeby jej tego
zabronić (chyba że obejmiesz trajem całe ciało metody). Wszelkie inne klasy
wyjątków muszą być jawnie obsługiwane lub jawnie propagowane.
>
> > z pożywczego, czy bez, heisenbugi zdarzają się tak samo w C++, jak i w
> > Javie.
> {Do Sebastiana}
> A tak przyokazji według Wikipedii heisenbugi również są związane z "race
> conditions". Rozumiem, że np. w Lispie i Pythonie nie można zrobić "race
> condition", czy się mylę?
:)
> Moim faworytem jest Logo to jest naprawdę bezpieczny język.
:)))))
> > No i słusznie. Ale tak się akurat składa, że Języki
> > Przemysłowo-Biznesowe(tm) są w większości chwytane przez tych, którzy o
> > powyższych sprawach nie mają bladego pojęcia.
> Tak, ale to jest złe.
No ale jeśli biznesowi takie badziewia wystarczają, to jego sprawa i nic w tym
temacie nie poradzisz.
--
// _ ___ Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl>
\\ L_ |/ `| /^\ ,() <ethouris(O)gmail.com>
// \_ |\ \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx
"Java is answer for a question that has never been stated"
Technical Details
Message-ID:
<fi3c0a$q7s$1@kujawiak.man.lodz.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!newsfeed.silweb.pl!news.man.lodz.pl!not-for-mailReferences:
<fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi28vf$dfu$1@news.vectranet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!newsfeed.silweb.pl!news.man.lodz.pl!not-for-mail
From: Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid>
Newsgroups: pl.comp.lang.c
Subject: Re: Ciemna strona C++
Date: Thu, 22 Nov 2007 07:44:10 +0000 (UTC)
Organization: LODMAN - Metropolitan Area Network in LODZ, Poland
Lines: 99
Sender: Michal Malecki <sektor@student.kis.p.lodz.pl>
Message-ID: <fi3c0a$q7s$1@kujawiak.man.lodz.pl>
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi28vf$dfu$1@news.vectranet.pl>
NNTP-Posting-Host: student.kis.p.lodz.pl
Mime-Version: 1.0
X-Trace: kujawiak.man.lodz.pl 1195717450 26876 212.191.89.21 (22 Nov 2007 07:44:10 GMT)
X-Complaints-To: abuse@man.lodz.pl
NNTP-Posting-Date: Thu, 22 Nov 2007 07:44:10 +0000 (UTC)
User-Agent: tin/1.8.3-20070201 ("Scotasay") (UNIX) (FreeBSD/6.2-RELEASE-p3 (sparc64))
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit