-
251. Data: 2012-07-27 11:11:06
Temat: Re: Czym jest programowanie?
Od: Andrzej Jarzabek <a...@g...com>
On Friday, 27 July 2012 09:28:11 UTC+1, Tomek[TK] wrote:
> On 26.07.2012 23:07, PK wrote:
> > To mogła być prawda kilka lat temu, ale dziś z całą pewnością nie.
> > Chyba że do grona "programistów C++" zaliczasz tylko osoby, których
> > jedynym zadaniem jest klepanie kodu pod otrzymane specyfikacje - wtedy
> > nie podjąłbym się wysuwać tego typu hipotezy, ale możesz mieć rację :).
>
> Trudno powiedziec o jakie osoby chodzi, ale jak widze jakies porownanie
> zarobkow to programisci Java maja sie troche lepiej. Nie sa to jakies
> mega duze roznice w stylu 300%, ale czesto odczuwalne.
Może patrzysz na niereprezentatywną próbę.
Ja na szybko tylko znalazłem:
http://www.indeed.com/salary
Jak wpiszę "C++ developer" i "java developer" to dostaję $100k i 99k,
jak wpiszę "C++ programmer" i "Java programmer" to dostaję 95k i $94k.
Ogólnie bym powiedział, że różnice są w granicach błędu.
To są oczywiście amerykańskie dane, gdzie indziej może być inaczej,
ale nie bardzo widzę dlaczego miałoby być i w którą stronę.
> Kiedys wydawalo mi sie, ze place programistow C++ sa wyzsze od
> programistow Javy poniewaz odnosze wrazenie, ze pisanie czegos
> powazniejszego w C++ jest jednak trudniejsze.
Nie powiedziałbym, że pisanie jest trudniejsze dla kogoś, kto zna
język na sensownym poziomie, natomiast na pewno nauczenie się języka
(wraz z idiomatycznymi tchnikami) jest na pewno znacznie trudniejsze.
> Nasunela mi sie pewna
> mysl, ze skoro cos jest trudniejsze to pewnie wiecej za to placa. Tyle
> tylko, ze zapotrzebowanie na Javowcow jest wieksze - takie odnosze
> wrazenie. Dlatego ich pensja rosnie :)
Ale podaż też jest znacznie większa, wydaje mi się.
-
252. Data: 2012-07-27 12:11:51
Temat: Re: Czym jest programowanie?
Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
On 2012-07-27, Tomek[TK] <t...@N...pl> wrote:
> On 26.07.2012 23:28, Andrzej Jarzabek wrote:
>>> Dlaczego?
>>
>> To że nie można przekazać parametru przez referencję,
>
> Zdaje sie, ze tyczy sie to tylko typow prostych, ale ok :) Pytalem w
> sumie z czystej ciekawosci.
Typów prostych, czyli również javowego wskaźnika na obiekt, zwanego
w Javie referencją.
--
Secunia non olet.
Stanislaw Klekot
-
253. Data: 2012-07-27 12:18:39
Temat: Re: Czym jest programowanie?
Od: "AK" <n...@n...com>
Użytkownik "Andrzej Jarzabek" <a...@g...com> napisał:
> Nie wiem, co rozumiesz przez typy proste, ale parametrów przez referencję (aka
'przez zmienną')
> nie można przekazać niezależnie od typu.
> Możnqa przekazać parametr typu 'referencja na obiekt', ale przekazać można ją tylko
przez wartość.
> Zatem nie da się zrobić:
>
> Object a=cośtam();
> [...]
> f(a);
> // funkcja f zmieniła wartość a, tak że wskazuje na inny obiekt niż
> // przed wywołaniem
1. Naucz sie opisywac temat _poprawnie_ bo przekazywanie parametrow przez referencje
to _nie jest to__ co opisujesz.
2. _Bardzo dobrze_, ze w Javie (w Pythonie zreszta tez) nie da sie tego zrobic.
Juz sama zmiana stanu obiektu przekazywanego przez do funkcji przez (ref)
referencje rodzi
problemy i skutki uboczne,
a co dopiero gdyby sie sam obiekt zmienil brrr.... :) Do tego sluzy return i
rzeczy typu 'tuple'
(lub
udajace tuple).
3. Uda Ci sie w C++ osiagnac zamierzony efekt uzywajac tylko referencji (&) ?
PS: Oswiadczam, iz nie jestem Javowcem.
Oswiadczam ze niezbyt podoba mi sie C# out, ale dopuszczam 'mentalnie'
bo przy wywolaniu _wyraznie_ widac jak jest traktowany parametr [ int a;
aaa(out a); ]
AK
-
254. Data: 2012-07-27 12:30:20
Temat: Re: Czym jest programowanie?
Od: "AK" <n...@n...com>
Użytkownik "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid> napisał:
>> Zdaje sie, ze tyczy sie to tylko typow prostych, ale ok :) Pytalem w
>> sumie z czystej ciekawosci.
>
> Typów prostych, czyli również javowego wskaźnika na obiekt, zwanego
> w Javie referencją.
Nie ma kompletnie znaczenia jak to jest zaimplementowane wewnetrznie.
Wazne, ze na tym nie mozna czynic arytmetyki.
Niepotrzebny tez dualizm: . -> )
PS: W C++ referencja to tez przeciez wskaznik.
Powiem wiecej. To najbardziej wskaznikowata referencja z mozliwych :)
AK
-
255. Data: 2012-07-27 13:06:47
Temat: Re: Czym jest programowanie?
Od: Roman W <b...@g...pl>
On Friday, July 27, 2012 10:11:06 AM UTC+1, Andrzej Jarzabek wrote:
> On Friday, 27 July 2012 09:28:11 UTC+1, Tomek[TK] wrote:
> > On 26.07.2012 23:07, PK wrote:
> > > To mogła być prawda kilka lat temu, ale dziś z całą pewnością nie.
> > > Chyba że do grona "programistów C++" zaliczasz tylko osoby,
których
> > > jedynym zadaniem jest klepanie kodu pod otrzymane specyfikacje - wtedy
> > > nie podjąłbym się wysuwać tego typu hipotezy, ale możesz mieć rację :).
> >
> > Trudno powiedziec o jakie osoby chodzi, ale jak widze jakies porownanie
> > zarobkow to programisci Java maja sie troche lepiej. Nie sa to jakies
> > mega duze roznice w stylu 300%, ale czesto odczuwalne.
>
> Może patrzysz na niereprezentatywną próbę.
>
> Ja na szybko tylko znalazłem:
> http://www.indeed.com/salary
> Jak wpiszę "C++ developer" i "java developer" to dostaję $100k
i 99k,
> jak wpiszę "C++ programmer" i "Java programmer" to dostaję 95k
i $94k.
>
> Ogólnie bym powiedział, że różnice są w granicach błędu.
>
> To są oczywiście amerykańskie dane, gdzie indziej może być inaczej,
> ale nie bardzo widzę dlaczego miałoby być i w którą stronę.
>
> > Kiedys wydawalo mi sie, ze place programistow C++ sa wyzsze od
> > programistow Javy poniewaz odnosze wrazenie, ze pisanie czegos
> > powazniejszego w C++ jest jednak trudniejsze.
>
> Nie powiedziałbym, że pisanie jest trudniejsze dla kogoś, kto zna
> język na sensownym poziomie, natomiast na pewno nauczenie się języka
> (wraz z idiomatycznymi tchnikami) jest na pewno znacznie trudniejsze.
>
> > Nasunela mi sie pewna
> > mysl, ze skoro cos jest trudniejsze to pewnie wiecej za to placa. Tyle
> > tylko, ze zapotrzebowanie na Javowcow jest wieksze - takie odnosze
> > wrazenie. Dlatego ich pensja rosnie :)
>
> Ale podaż też jest znacznie większa, wydaje mi się.
Ponoc teraz jest tak, ze ludziom wiecej placa za znajomosc roznorakich API niz
"czyste" programowanie w danym jezyku, a skoro Java ma wiecej API do opanowania, to
koles ktory ma multum akronimow w CV moze sobie liczyc troche wiecej.
RW
-
256. Data: 2012-07-27 20:35:01
Temat: Re: Czym jest programowanie?
Od: "yamma" <y...@w...pl>
Użytkownik "Andrzej Jarzabek" <a...@g...com> napisał w
wiadomości news:juscqu$bmr$1@inews.gazeta.pl...
> Oczywiście doceniam fakt, że prostota języka ma swoje zalety, za każdym
> razem jak mogę np. porównać wsparcie IDE dla Javy w przypadku Eclipse i
> C++ w pzypadku VS; chocćby takie drobne sprawy, jak podpowiedzi czy
> możliwość skoku de deklaracji/definicji. A od kiedy przyzwyczaiłem się
> używać narzędzi do automatycznej refaktoryzacji, to za każdym razem mam
> ochotę cisnąć klawiaturą, kiedy muszę takową zrobić ręcznie w VS.
Hm. Porównywanie Eclipse'a w kontekście Javy z VS w kontekście C++ jest,
delikatnie mówiąc, mocno niesprawiedliwe dla autorów VS. Bardziej
sprawiedliwy byłby kontekst języka C#, ewentualnie porównanie możliwości
wsparcia Eclipse'a dla C++.
yamma
-
257. Data: 2012-07-27 23:50:41
Temat: Re: Czym jest programowanie?
Od: Edek Pienkowski <e...@g...com>
Dnia Fri, 27 Jul 2012 20:35:01 +0200, yamma napisal:
> Użytkownik "Andrzej Jarzabek" <a...@g...com> napisał w
> wiadomości news:juscqu$bmr$1@inews.gazeta.pl...
>
>> Oczywiście doceniam fakt, że prostota języka ma swoje zalety, za każdym
>> razem jak mogę np. porównać wsparcie IDE dla Javy w przypadku Eclipse i
>> C++ w pzypadku VS; chocćby takie drobne sprawy, jak podpowiedzi czy
>> możliwość skoku de deklaracji/definicji. A od kiedy przyzwyczaiłem się
>> używać narzędzi do automatycznej refaktoryzacji, to za każdym razem mam
>> ochotę cisnąć klawiaturą, kiedy muszę takową zrobić ręcznie w VS.
>
> Hm. Porównywanie Eclipse'a w kontekście Javy z VS w kontekście C++ jest,
> delikatnie mówiąc, mocno niesprawiedliwe dla autorów VS. Bardziej
> sprawiedliwy byłby kontekst języka C#, ewentualnie porównanie możliwości
> wsparcia Eclipse'a dla C++.
Przynajmniej wspiera Javę zgodnie ze ztandardem
Buuurp.
Edek
-
258. Data: 2012-07-28 00:14:51
Temat: Re: Czym jest programowanie?
Od: Andrzej Jarzabek <a...@g...com>
On 27/07/2012 19:35, yamma wrote:
>
> Hm. Porównywanie Eclipse'a w kontekście Javy z VS w kontekście C++ jest,
> delikatnie mówiąc, mocno niesprawiedliwe dla autorów VS. Bardziej
> sprawiedliwy byłby kontekst języka C#,
Co mnie obchodzi C#? Porównywałem C++ z Javą pod względem dostępności
narzędzi, np. automatycznej refaktoryzacji. To niby co miałoby być
odpowiednikiem Eclipse dla C++, żeby było sprawiedliwie?
> ewentualnie porównanie możliwości wsparcia Eclipse'a dla C++.
I co, Elcipse ma automatyczną refaktoryzację dla C++?
-
259. Data: 2012-07-28 00:23:30
Temat: Re: Czym jest programowanie?
Od: Andrzej Jarzabek <a...@g...com>
On 27/07/2012 12:06, Roman W wrote:
>
> Ponoc teraz jest tak, ze ludziom wiecej placa za znajomosc roznorakich
> API niz "czyste" programowanie w danym jezyku, a skoro Java ma wiecej
> API do opanowania, to koles ktory ma multum akronimow w CV moze sobie
> liczyc troche wiecej.
A nie wiem. Mi nie płacą za znajomość API, tylko za to, że jak trzeba,
to się potrafię nauczyć. :)
-
260. Data: 2012-07-28 00:57:08
Temat: Re: Czym jest programowanie?
Od: Andrzej Jarzabek <a...@g...com>
On 27/07/2012 11:18, AK wrote:
> Użytkownik "Andrzej Jarzabek" <a...@g...com> napisał:
>
>> Nie wiem, co rozumiesz przez typy proste, ale parametrów przez
>> referencję (aka 'przez zmienną') nie można przekazać niezależnie od typu.
>> Możnqa przekazać parametr typu 'referencja na obiekt', ale przekazać
>> można ją tylko przez wartość. Zatem nie da się zrobić:
>>
>> Object a=cośtam();
>> [...]
>> f(a);
>> // funkcja f zmieniła wartość a, tak że wskazuje na inny obiekt niż
>> // przed wywołaniem
>
> 1. Naucz sie opisywac temat _poprawnie_ bo przekazywanie parametrow
> przez referencje to _nie jest to__ co opisujesz.
W C++ tak się to nazywa. Proszę o jakiegoś linka do opisu co to znaczy
przekazywanie przez referencję.
> 2. _Bardzo dobrze_, ze w Javie (w Pythonie zreszta tez) nie da sie tego
> zrobic.
> Juz sama zmiana stanu obiektu przekazywanego przez do funkcji przez
> (ref) referencje rodzi problemy i skutki uboczne,
Kolejna rzecz, której mi brakuje w Javie - const.
> a co dopiero gdyby sie sam obiekt zmienil brrr.... :) Do tego sluzy
Niedawno ktoś opisywał, że ma problemy z za długimi metodami. Części
tych metod możnaby wyobrębnić w osobne metody, ale problemem jest użycie
w tych częściach zmiennych lokalnych. Brak możliwości przekazania
zmiennych (typów referencyjnych czy jakichkolwiek innych) przez
referencję powoduje utrudnienie refektoryzacji typu 'extract method'.
> return i rzeczy typu 'tuple' (lub
> udajace tuple).
Nie ma zdaje się takiego czegoś w Javie.
> 3. Uda Ci sie w C++ osiagnac zamierzony efekt uzywajac tylko referencji
> (&) ?
Normalnie. Zacznijmy od tego, że najbliższym odpowiednikiem typu
referencyjnego z Javy jest w C++ wskaźnik, więc odpowiednikiem:
JakisTyp zmienna = new JakisTyp();
będzie w C++
JakisTyp* zmienna = new JakisTyp();
(może być shared_ptr albo unique_ptr)
więc jeśli funkcja f ma sygnaturę
f(JakisTyp*&);
to mam:
JakisTyp* a=cośtam();
[...]
f(a);
// a może wskazywać na coś innego niż przed wywołaniem f