Dlaczego Java nie ma przyszłości?

Dlaczego Java nie ma przyszłości?
Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
2

Po pierwsze nie rozumiesz czym są formatery i do czego służą. Zapewne nie rozumiesz też modelu wielowątkowości w javie. Ale pocieszę cię. W C++ też nie ma bezpiecznej obsługi dat dla aplikacji wielowątkowych.
Co do luk krytycznych, to java nie jest ich w sumie dużo. Na przykład w FF 27 (update w tym tygodniu do tej wersji był) masz już cztery krytyczne > http://www.mozilla.org/security/known-vulnerabilities/firefox.html, a cykl wydawniczy jest znacznie krótszy.

Swoją drogą wyczuwam tu raczej niezaliczony przedmiot i wylewanie żali na "gupio dżawe"...


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
Bartosz Wójcik
A ty chyba nie rozumiesz mowy pisanej i czym jest konkurencyjność w aplikacjach...
Koziołek
no może nie rozumiem, ale ELIXIRa w swoim czasie w wielu wątkach puściłem i do dziś działa...
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0

Nie ma przyszłości, bo singletona trzeba implementować przez enum (a i tak nie wiem czy będzie mógł mieć w tym wypadku lazy initialization).

http://java.dzone.com/articles/singleton-design-pattern-%E2%80%93

Jakaś masakra. Niech mi ktoś wyjaśni jak to jest możliwe że to musi być tak skomplikowane - w Javie.

KR
W Scali jest bezpośrednia konstrukcja do tego i lazy wbudowane w język.
Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
3

@vpiotr, po co w ogóle implementować singletona "na twardo"? Nie tylko w Javie? Od tego jest DI. Zresztą jakaś dzika mania z tym wzorcem jest.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0
Koziołek napisał(a):

@vpiotr, po co w ogóle implementować singletona "na twardo"? Nie tylko w Javie? Od tego jest DI. Zresztą jakaś dzika mania z tym wzorcem jest.

Nie wiem czy o tym samym myślimy, ale...
Wręcz przeciwnie. W zasadzie nigdy nie miałem potrzeby na singletona "na twardo". Nawet mnie to wk... jak gdzieś widziałem.

Przez "na miękko" rozumiem dwa case'y:

  • pytam się o obiekt z klasy (getInstance) ale nie obchodzi mnie czy to jest klasa potomna czy nie (nawet lepiej jeśli może być potomna)
  • pytam się o obiekt pod określoną nazwą string, jak go nie ma to wywałka, może być potomny

Z tym że jak już jeden jest to ma się więcej nie tworzyć.

Coś jak ManagedBean z AppScoped. Tylko bez JSF/CDI etc.

Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
1

Oba przypadki masz zazwyczaj robione przez fabryki. Co więcej można np. użyć Springa czy Guice w aplikacji JSE i nawet nie będziesz widział różnicy.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
vpiotr
OK, tnx. Nawet we flejmie człowiek czegoś się dowie :)
vpiotr
Znalazłem jeszcze lazy initialization bez enum: http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom Ale chyba nie da rady wykorzystać w klasach dziedziczących.
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:11 minut
0

Singletony w Javie:
http://en.wikipedia.org/wiki/Singleton_pattern

Jeśli ktoś chce mieć leniwie ładowane singletony, thread-safe i bez zbędnej synchronizacji to ma co najmniej dwa wyjścia:

  1. Użycie enuma. Enumy są leniwie tworzone, a w zasadzie to pół-leniwie. Chodzi o to, że wszystkie instancje enuma są tworzone naraz przy pierwszym użyciu któregokolwiek. W przypadku gdy jest tylko jeden enum (co czyni z enuma singletona) wtedy nie ma to znaczenia. Zaletą enuma-singletona jest to, że jest zwięzły. Wadą jest to, że nie może dziedziczyć po żadnej klasie.
  2. Użycie "Initialization On Demand Holder Idiom" od Billa Pugha. To jest moje ulubione. Jest trochę więcej linijek niż przy użyciu enuma, ale za to nie ma WTFa (enum-singleton?) oraz zostaje nam możliwość dziedziczenia.

Zabawy z 'volatile' teoretycznie skutkują zmniejszonymi możliwościami optymalizacji - zmienne typu volatile nie mogą być przechowywane (keszowane) w rejestrach procesora.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 2x, ostatnio: Wibowit
tomi0001
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 10 lat
  • Postów:185
0

Mi się osobiście w javie nie podoba to, że wymusza na nas programowanie obiektowe.


<? $a = 4; //jakaś liczba całkowita $b = 5; // jakaś liczba całkowita $c = $a + $b; print $c; ?>
Mój pierwszy program(skrypt)
n0name_l
To rzeczywiscie okropienstwo javy :D
Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
0

@tomi0001 gdyby Java wymuszała, tak naprawdę takie prawdziwe programowanie obiektowe to dział jej poświęcony świecił by pustkami. Serio. Nie podoba się programowanie obiektowe? Programuj proceduralnie (jest goto i nawet działa) czy też strukturalnie. Chcesz programować funkcyjnie? Też się da. Co prawda składnia będzie ekstremalnie obrzydliwa, ale jakieś takie LISPo podobne rzeczy da się uzyskać. Chcesz aktorów? Masz Akkę. Chcesz aspekty? Można użyć aspectJ, obiektów proxy i kilku innych rozwiązań.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:11 minut
0
tomi0001 napisał(a):

Mi się osobiście w javie nie podoba to, że wymusza na nas programowanie obiektowe.

Nie wymusza. Zdarzają się tacy co robią większość programu na staticach.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit
Dawid90dd
Mam pytanie, a czy z punktu widzenia programowania to złe? (pytam dosłownie, bo nie wiem)
Wibowit
Tak. Języki programowania ewoluują w kierunku coraz mniejszego kosztu utrzymywania kodu, więc kodzenie w starym stylu w nowym języku jest bez sensu. Łatwo testowalny i reużywalny kod obiektowy to oszczędność czasu i pieniędzy w dłuższej perspektywie (tzn w perspektywie wielu lat).
EM
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 10 lat
  • Postów:271
0

Z racji że jest to dział "Flame" a ja jeszcze się tu ( chyba ) nie udzielałem dodam coś od siebie. Jedno zdanie które mam nadzieje otworzy wam oczy na sedno sprawy.
Java nie ma przyszłości ponieważ... mamy C++ a Bjarne Stroustrup wciąż żyje! xd

Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
2

James Gosling też jeszcze żyje :D
Zaczynam się obawiać o C...


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
EM
Mam nadzieje że wszyscy podchodzimy z pewnym dystansem do postów w tym dziale ;) W żadnym wypadku nie atakuje Javy bo na dobrą sprawę nawet jej nie znam ale jako że jest to "Flame" to chciałem się dopasować xd
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:3 minuty
  • Postów:6633
1

Idąc tym tokiem rozumowania Apple nie ma przyszłości ;)


🕹️⌨️🖥️🖱️🎮
Koziołek
Czytaj applefobię... wbrew pozorom to co napisałeś jest cholernie prawdziwe
tomi0001
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 10 lat
  • Postów:185
0

Kolosalną zaletą Javy jest to, że jest wieloplatformowa.


<? $a = 4; //jakaś liczba całkowita $b = 5; // jakaś liczba całkowita $c = $a + $b; print $c; ?>
Mój pierwszy program(skrypt)
Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
0

Zaletą nie jest to, że jest wieloplatformowa... jak seks analny... zaletą jest sama maszyna wirtualna pozwalająca na ujednolicenie kodu wykonywalnego.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
EM
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 10 lat
  • Postów:271
0

W przypadku naprawdę zaawansowanych aplikacji zawsze przychodzi moment gdzie trzeba sięgnąć do API systemu i wtedy kończy się "wieloplatformowość" Javy. O C++ też już dawno temu mówiono że to jego koniec a w tej chwili rozwija się chyba najdynamiczniej z pozostałych( włączając w to biblioteki ) więc i Java ma "jakąś" przyszłość. A jaką? to zależy od rynku a dokładniej od firm, programistów którzy wybiorą ( lub nie ) tą technologie do swoich projektów. Ja miałem okazję poznać podstawy Javy - nie spodobała mi się i na szczęście nie muszę jej używać.
W zaawansowanych aplikacjach i tak króluje Windows więc C++ / C# w zupełności wystarcza.
Ale Flame! xd

Zobacz pozostałe 17 komentarzy
KR
Iterator-way jest poroniony nie tylko dlatego, że się niewygodnie korzysta, ale również dlatego, że jest konstrukcją typowo sekwencyjną i nie bardzo nadaje się do wyrażania algorytmów równoległych. Czyli można zapomnieć o takim zrównoleglaniu istniejącego kodu operującego na kolekcjach jak w Haskellu i Scali, gdzie robi się to jednym wywołaniem metody.
vpiotr
Euforia związana z C++11 wg mnie jest uzasadniona. Ten język leżał odłogiem przez wiele lat w kwestii standaryzacji, Microsoft położył na nim krzyżyk (co chwilę próbują nie-wypuścić VS Express dla C++, promują głównie C#), ale język nadal się rozwijał (Boost, GCC). Planowane już są C++14 i następne wersje. Raczej trudno nie-zauważyć tego renesansu.
vpiotr
A co jest nie tak z Boost::lockfree?
KR
Jest strasznie biedny.
KR
Co do renesansu, to jeśli chodzi o to, że w ogóle coś się ruszyło z rozwojem języka - to zgoda. Ale renesansu w użyciu nie ma. Ci co używali C++ będą go nadal używać, natomiast zalewu nowych projektów np. na GitHub ani dramatycznego wzrostu zapotrzebowania na programistów C++ nigdzie nie widać.
Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
2

Czy ja wiem czy trzeba sięgać do platformy? Napisałem w życiu trochę kodu i jedynym przypadkiem gdy musieliśmy grzebać się w API systemu był projekt z wykorzystaniem czytnika RS232. Zresztą w przypadku Javy jest JNA/JNI i przygotowanie sobie wrapera na popularne systemy nie jest problemem.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
0

Kozioł to z C to ironia tak? :D prawdopodobnie dziś nie mógł bym nawet bez C użyć kalkulatora.

Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
0

@jokelikethat, czy nazwisko Dennis Ritchie coś ci mówi?


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
EM
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 10 lat
  • Postów:271
0

@n0name_l nie chce zaczynać kolejnego Flama ale tak jest. Oczywiście zawsze znajda się odpowiedniki danych programów na inne platformy a to czy są gorsze czy lepsze to już zdanie bardzo subiektywne. Zależy też o czym myślimy mówiąc "zaawansowane" - Photoshop, Corel, można by mnożyć przykłady programów które ( według mnie ) nie maja równego sobie odpowiednika. Poza tym większość firm w Polsce używa tego systemu niezależnie czy jest to Desktop czy coś przenośnego a że Tobie się to nie podoba no cóż - przykro mi ;)

@vpiotr programistyczną "karierę" uzależniasz od znajomości Javy? Nie zgadzam się. A jeśli nawet by tak było to dam ogłoszenie "oddam karierę programistyczna w dobre ręce" a sam zostanę po prostu przy programowaniu ;)

Zobacz pozostały 1 komentarz
EM
Ja też nie dostaje nic za pozytywne opinie o systemie jakim jest Windows. Ważne że Ty wiesz o czym piszesz ;) Życzę kolejnego dnia udanej pracy pod Windowsem ;)
n0name_l
Z ta praca na windowsie moze byc troche ciezko, ostatni poszedl do kasacji bodaj wczoraj. Oczywiście zawsze znajda się odpowiedniki danych programów, wroc... istnieje cos poza desktopem i to cos ma calkiem spory rozmiar. większość firm w Polsce, jaka wiekszosc? Bo ja np. znam taka, gdzie na kilkudziesieciu ludzi sa 2 (slownie - dwa) windowsy.
tomi0001
@n0name_l zgadzam się z tobą ja też nie lubię windowsa.
somekind
@n0name_l, i z tego, że znasz jedną firmę, która spełnia jakiś warunek, wynika że większość go nie spełnia?
n0name_l
Nie to bylo moim celem, a sam fakt, ze niektore firmy (a moze bardziej pracownicy) powoli zmieniaja przyzwyczajenia i pomimo, ze XP uzywalo masa ludzi, to nie wszyscy sa zachwyceni nowosciami ze stajni MS i szukaja jakiejs alternatywy. W PL na razie ten trend jest slabo widoczny, ale na zachodzie juz bardziej.
0
Koziołek napisał(a):

@jokelikethat, czy nazwisko Dennis Ritchie coś ci mówi?

Chodzi o to że on umarł i C wraz z nim? :D

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 20 godzin
  • Lokalizacja:Wrocław
0

Ja się zastanawiam, kiedy niektórzy ludzie zrozumieją, że nie każdy program to jakieś okienko pod jakimś Windowsem.

@emacs, słyszałeś może o czymś takim jak aplikacja webowa albo usługa sieciowa?

EM
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 10 lat
  • Postów:271
0

Widzę że muszę doprecyzować swoją wypowiedź bo chyba zostałem źle zrozumiany ;)
@somekind oczywiście że słyszałem ;) oczywiste jest też to że z tym "królowaniem Windowsa" to był flejm bo wydawało mi się że w tym dziale mogę sobie na to pozwolić.
Co do Javy tak jak pisałem miałem okazje poznać podstawy - napisać prosty programik na zaliczenie, aplet i sam język nie przypadł mi do gustu ale przecież nie atakuje ani Javy ani osób które ja wykorzystują - kto co lubi.
@n0name_l masz rację wziąłem pod uwagę tylko Desktop zapominając o urządzeniach mobilnych gdzie Windows już nie ma największego udziału, ale jeszcze raz chciałbym podkreslić że ja tutaj nie porównuje systemów jakościowo nie chce zaczynać kłótni, to tak jak z językami - każdy używa tego co lubi, mi chodziło tylko o ogólny udział systemu Windows w rynku.
Pewnie są firmy które w ogóle nie używają Windowsa i ok ;) być może takich miejsc jest dużo ale biorą pod uwagę kryterium które podałem to tak czy inaczej wychodzi Windows > reszta systemów. ( ILOŚCIOWY UDZIAŁ W RYNKU )
I teraz dlaczego to mówię? A no dlatego że w momencie gdy piszesz nowy projekt i chciałbyś całkowicie "olać" systemy Windows to tak naprawdę automatycznie tracisz ponad połowę wszystkich urządzeń które mogłyby się zainteresować Twoim systemem. I to by było tyle ;)

LU
  • Rejestracja:około 19 lat
  • Ostatnio:około 11 lat
0

gdy piszesz nowy projekt i chciałbyś całkowicie "olać" systemy Windows to tak naprawdę automatycznie tracisz ponad połowę wszystkich urządzeń które mogłyby się zainteresować Twoim systemem

Właśnie po to stworzono Javę, żeby można było ominąć ten problem. Dla drobnych klepaczy piszących "notatniki" na desktop jest to problem, który nie istnieje.
W przypadku tworzenia rozbudowanych i krojonych na miarę systemów biznesowych, z bazami danych itd. itp. również nie ma tego problemu, bo pisze się pod już istniejącą infrastrukturę.

n0name_l
Do notatnikow na windowsy jest delphi, a nie powazne jezyki programowania :P
LU
Ale Java jest bardziej pr0. Nie to, co lamerskie Delphi.
vpiotr
Obecna Java (Swing) na Windows wygląda gorzej niż aplikacje zrobione w Delphi 7 (z 2002 roku). Java "udaje" kontrolki Win32 więc np. okno wyboru plików wygląda tak jak wygląda.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 20 godzin
  • Lokalizacja:Wrocław
0
emacs napisał(a):

I teraz dlaczego to mówię? A no dlatego że w momencie gdy piszesz nowy projekt i chciałbyś całkowicie "olać" systemy Windows to tak naprawdę automatycznie tracisz ponad połowę wszystkich urządzeń które mogłyby się zainteresować Twoim systemem. I to by było tyle ;)

Tak, ale to jest wyłącznie problem programistów desktopowych. Webowców nie obchodzą systemy operacyjne ani API systemowe. (Mają większe problemy. :P)

EM
Masz rację ale w web-ie możesz mieć z kolei problemy ze zgodnością różnych przeglądarek do aktualnego standardu bo z tego co mi wiadomo ( pobieżnie ) to nie wszystkie w jednakowym stopniu obsługują nowe elementy różnych technologii ( html, css, php ).
n0name_l
Co ma php wspolnego z przegladarka, a tymbardziej z programowaniem?
somekind
Tak, są inne problemy jak już pisałem, ale nie są one związane z systemem operacyjnym. Jeśli aplikacja jest zgodna z np. Firefoxem, to każdy Firefox bez względu na system operacyjny tę aplikację obsłuży.
EM
@n0name_l kolejny flame? PHP a programowanie i aplikacje webowe - tak na sam początek http://pl.wikipedia.org/wiki/PHP
EM
@somekind gorzej pewnie ze zgodnością pomiędzy różnymi przeglądarkami ;) a szczególnie IE xd
n0name_l
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:2412
0

Jak zaczynam (powiedzmy, ze zaczynam choc w przypadku wiekszosci projektow to dalekie od jakiegokolwiek stanu faktycznego) projekt, to z mojego punktu widzenia jest kompletnie obojetne jakiego systemu klient bedzie uzywac. Z punktu widzenia marketingu natomiast, wazne jest, aby trafic do jak najwiekszej ilosci tych klientow. Sa tu dwa wyjscia:
#Pisac soft oddzielnie na kazdy system (prawdopodobnie firma zbankrutuje w miedzyczasie, albo caly personel z niej ucieknie)
#Napisac serwis z interfejsem webowym i miec gdzies czy ktos uzywa windowsa, linuxa czy wyderos (brzmi ciekawiej).

tomi0001
A w jakich językach piszesz aplikacje?
n0name_l
Aktualnie w zadnym. Hobbistycznie eksperymentuje z technologiami webowymi.
Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
0

@emacs, po pierwsze 99% softu w Javie jest pisana w taki sposób, że jego uruchomienie wymaga od uruchamiającego wiedzy o "czarnej magii konsolowej", inaczej mówiąc, końcowy użytkownik korzysta z interfejsu webowego i nie wnika co jest pod spodem.
Po drugie pozostałe 1% oprogramowania jest napisane w javie i na JVM uruchamiane przez co jedynym zmartwieniem użytkownika końcowego jest dość duża paczka z programem zawierajacą zazwyczaj gotowego JVMa (jak by ktoś nie miał zainstalowanej).
Po trzecie, jeżeli piszesz soft w którym wymagane są wywołania systemowe, to
a) nie używasz javy
b) i tak jest to dedykowane pod konkretnego sysopa oprogramowanie
Po czwarte, zgodność z sysopem zapewnia JVM i zmartwieniem programistów JVM jest to by była ona zgodna z różnymi systemami.

Podsumowując, jak piszesz w javie to możesz położyć lachę na system operacyjny, ponieważ twoim jedynym "systemem" jest JVM.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
EM
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 10 lat
  • Postów:271
0

Tylko trzeba zadać sobie kolejne pytanie czy ta wieloplatformowość w Javie to coś co daje jej aż taka przewagę nad innymi językami? Teraz praktycznie do każdego języka są kompletne zestawy wieloplatformowych bibliotek dla przykładu to w czym ja aktualnie siedzę - C++ / boost / Qt i jedynym problemem ( jeśli tak to można nazwać ) jest konieczność kompilacji na konkretne systemy które chce obsługiwać plus ewentualnie wywołania API konkretnego systemu ale to jest 1%.
@Koziołek

końcowy użytkownik korzysta z interfejsu webowego

w przypadku aplikacji które mogą sobie na to pozwolić to faktycznie jest to duża zaleta. To wszystko zależy od konkretnego typu końcowej aplikacji. Ja obracam się raczej w aplikacjach które z webem nie mają zbyt wiele wspólnego( poza połączeniem / wymianą danych ) dlatego pewnie też ciężko dostrzec mi plusy stosowania Javy.

KR
C++ nie jest przenośne nawet pomiędzy wersjami/odmianami tego samego OSa, a co dopiero między systemami. Ba, nie jest przenośne nawet między różnymi kompilatorami na ten sam OS. Wiedzą o tym twórcy bibliotek. Konieczność kompilacji na nowy system to duży ból. Boost i Qt trochę pomaga ten ból zmniejszyć, ale daleko do takiej wygody jak w Javie.
EM
Ja z powodzeniem uruchamiam program ( C++ / Boost / Qt ) skompilowany raz na XP /Vista / 7.
Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
0
emacs napisał(a)

To wszystko zależy od konkretnego typu końcowej aplikacji.

OK, zgoda. Pytanie jest jedno - czy aplikacje, które piszesz naprawdę nie mogą być przeportowane na WEB. Jeżeli są to tylko okienka z formularzami to zapewne nie stanowi to problemu. Jeżeli jest to jakiś CAD, to trzeba by się było pobawić z animacjami na canvas, ale to już inna sprawa.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
EM
Pewnie mogłyby i być przeportowane na WEB tylko czy to ma sens? Wyobrażasz sobie edytory tekstu, odtwarzacze multimedialne ( dźwięk / video ) programy do obróbki zdjęć i szeroko rozumianej grafiki, komunikatory wszelkiej maści już nie wspominając o programach "inżynierskich" typu LabView jako WEB? Wybór technologii powinien iść za problemem jaki mamy. Nie można zaprzeczyć że Java zdobyła dużą część rynku i jest w tej chwili wiodącą technologią. Ale ma konkurenta.... ;)
Koziołek
edytory tekstu - google docs. grafika i zdjęcia - fotoszopa online, CADy też już są. BTW, nie powiedziałem, by zawsze wszystko portować. Dobór technologi do problemu jest ważny, ale to, że czasami nie można wykorzystać javy nie oznacza, że ona nie ma przyszłości.
EM
Ja tego nie powiedziałem ;) Tutaj się zgadzamy.
somekind
Defragmentator dysków online to byłoby coś. ;)
Wibowit
somekind: dd | emacs | sendmail | emacs | dd :P
KR
Moderator
  • Rejestracja:prawie 21 lat
  • Ostatnio:dzień
  • Postów:2964
2

Pewnie są firmy które w ogóle nie używają Windowsa i ok ;) być może takich miejsc jest dużo ale biorą pod uwagę kryterium które podałem to tak czy inaczej wychodzi Windows > reszta systemów. ( ILOŚCIOWY UDZIAŁ W RYNKU )

Ilościowy udział w jakim rynku? Desktopów? Urządzeń mobilnych? Serwerów? Nawet w ramach desktopów, zupełnie inny udział Windows będziesz mieć na komputerach domowych a zupełnie inny na komputerach firmowych firm sektora IT a jeszcze innych w komputerach wydawnictw itp. Jaki jest sens wrzucać wszystko do jednego worka?

Inna rzecz, że akurat przenośność Javy nie jest jest wcale jej główną zaletą. Właściwie trudno pokazać jedną zaletę - bo dla każdej cechy zapewne znajdzie się jakiś język, który robi to lepiej. Natomiast ważne, jest, że poniższe cechy występują równocześnie:

  1. w miarę prosty język, którego można się szybko nauczyć i w którym nie ma zbyt wielu pułapek i niespodzianek (pewne są, ale jest ich znacznie mniej niż np. w C++)
  2. dostępność świetnych narzędzi wspomagających pisanie kodu; do tego darmowych lub bardzo tanich
  3. rozbudowana biblioteka standardowa i mnóstwo bibliotek zewnętrznych wysokiej jakości (choćby od ASF czy Google)
  4. ustandaryzowane ABI i API (kompatybilność wsteczna, kompatybilność między platformami)
  5. dobra wydajność - w większości sytuacji nieustępująca "językom szybkim" tj. C lub C++
  6. sprawdzona i stabilna platforma wykonawcza
  7. na JVM są dostępne jedne z najbardziej zaawansowanych i najwydajniejszych GC
  8. wsparcie dużych firm (Oracle, IBM, Google) i, mimo przejściowych problemów przy przejęciu Suna, stabilny rozwój
Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
3

http://en.wikipedia.org/wiki/Usage_share_of_operating_systems jeśli chodzi o desktopy to rzeczywiście "windows" prowadzi jednak tam, gdzie liczy się kasę (serwery) to 2/3 rynku mają UXy


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
flowCRANE
Heh, Vista jeszcze żyje... :D
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)