codeine [ Konsul ]
Jaki jezyk programowania.
Bede mial troche wolnego czasu w wakacje i mam zamiar napisac sobie maly program. Zastanawiam sie tylko w jakim jezyku go napisac.
Opis programu:
Chcialbym zeby byl to program ktory umozliwialby bardzo latwa kalkulacje wynikow na podstawie rankingow ELO. Funkcje:
1. Latwe dodawanie/usuwania nowych uczestnikow do tabeli.
2. Latwa kalkulacja wynikow wraz z automatyczna zmiana miejsc w tabeli. Chcialbym, zeby osoba ktora mialaby taki program mogla w 2-3 kliknieciach wliczyc nowe rankingi. ja to widze w taki sposob(interface graficzny): glowne menu-> nowy mecz-> wybiera zawodnikow z listy-> wybiera ktory wygral-> potwierdza i tabela zostaje uaktualniona.
3. Historia - kto z kim gral, jakie wyniki, mozliwosc cofniecia
4. Latwy export tabeli, do publikacji w sieci, do wyslania w emailu.
W sumie tyle, zapewne nic wielkiego a zaoszczedzilo by niektorym ludziom sporo czasu. Zdaje sobie sprawe, ze cos takiego jest pewnie latwo napisac...
pecet007 [ Fallout NV ]
Python lub C++
ale i tak każdy poleci cos innego ;)
yasiu [ Legend ]
albo zrób to jako aplikację internetową - php+sql+jscript :)
codeine [ Konsul ]
Da sie je opanowac w wystarczajacy sposob te jezyki w ciagu paru miesiecy by napisac takie cos jak opisalem wyzej? Wlasnie chodzi mi o taki jezyk ktory bylby w miare latwy do opanowania dla laika a ktory pozwalalby w tym samym na zmiany.
alpha_omega [ Legend ]
Żadne c++ do czegoś tak prostego. Jeśli nie php+html+sql i wyświetlanie w formacie strony www, to najlepsza będzie java: język wyjątkowo przejrzysty, z ogromem bibliotek (które zresztą - poza wbudowanymi - nie będą ci potrzebne ;P), wysokopoziomowy.
Jak z C++, a dokładnie biblioteką Winapi, bo przecież nie chcesz mieć programu w konsoli, musiałbyś się męczyć niemiłosiernie (za same nazwy funkcji itp. odesłałbym ludzi z MS na leczenie psychiatryczne, nie mówiąc o strukturze ich "nakładek"), tak w Javie wszystko samo wchodzi do głowy.
Załatw sobie książkę (lub ebooka) Core Java 2 - część pierwsza.
pecet007 [ Fallout NV ]
alpha_omega -- ta tylko kto gdzisiaj pisze GUI w czystym Winapi? Od tego jest wxWidgets, QT lub podobne toolkity.
alpha_omega [ Legend ]
Ok, ale po co? Sam język C++ jest trudny w porównaniu z Javą, a przecież gość nie wymaga jakichś niesamowitych funkcji. Z Javą, obok jej prostoty (nie mylić z prymitywnością, chodzi o przejrzystość), dostaje całe zintegrowane środowisko wystarczające do tych wymagań. Ma znakomite, darmowe edytory (łącznie z bazami danych), podstawowe biblioteki są dużo na wyrost w stosunku do potrzeb, kod jest przenośny, język napisany tak, że sam wchodzi do głowy (poza kwestiami nauki samego wyczucia w programowaniu). Czego chcieć więcej?
Moby7777 [ Generaďż˝ ]
A ja z kolei Javę odradzam. Jak ma być aplikacja desktopowa to polecam mimo wszystko skorzystać z .NET - C# albo Basic. Osobiście wolę C# ale dla laika znacznie prostszy (i w zupełności tutaj wystarczający) będzie Visual Basic - program robi się niemal sam. :)
codeine [ Konsul ]
ta ksiazke?
Co do aplikacji to nie ma znaczenia, moze byc standalone, moze byc na stronie w internecie.
alpha_omega [ Legend ]
Moby7777 -
Nie znam tych języków z doświadczenia, ale ponoć na javie bazują (i ściśle, i ideowo), więc - w sumie - na desktopy również polecam. Bo z javą rzeczywiście jest tutaj trochę zachodu. Ale, czy w NET, nie można przypadkiem pisać w javie?
Moby7777 [ Generaďż˝ ]
@alpha: C# w dużej mierze był wzorowany na Javie. Tyle tylko, że twórcy zdecydowali się przywrócić kilka cech C++, których Javie bardzo brakowało (np. przeciążenie operatorów i wartości domyślne parametrów metod) oraz wypracowali dużo bardzo dobrych rozwiązań. Dodatkowo do C# masz najlepsze środowisko programistyczne z jakim się spotkałem: Visual Studio (w wersji Express jest darmowe). ŻADNE środowisko do Javy nie może się absolutnie z tym równać. Basic natomiast absolutnie na Javie wzorowany nie jest: zwyczajnie jest od niej starszy. Choć wersja .NET trochę rozwiązań zapożyczyła. Z drugiej jednak strony to efekt tego, że biblioteki .NET niezależnie od wykorzystanego języka można z łatwością używać we wszystkich. A co do Javy w NET... nie do końca tak jest. Platforma ta udostępnia swoisty dialekt tego języka - taka Java w wersji Microsoft: J#.
@codeine: Jeśli pasuje Ci aplikacja webowa to zdecydowanie polecam jednak jakąś bazę danych (pewnie MySQL) + JS (dla wygody użytkowania) + jakiś język po stronie serwera ze wsparciem frameworka (PHP z Cake albo Kohaną albo Python z Django). Nie tylko z miejsca dostaniesz możliwość dzielenia się wynikami i uzyskasz dostęp z dowolnego miejsca ale też są to rozwiązania znacznie prostsze. Dodatkowo, co na dłuższą metę jest dość przydatne, cały soft masz scentralizowany i nie musisz się martwić tym, czy ewentualni użyszkodnicy go aktualizują. :)
alpha_omega [ Legend ]
codeine --
Dokładnie ta.
Ta książka wydaje mi się najlepsza do nauki takich "zabawowych" zastosowań. Poleca się często Thinking in Java, ale to - w gruncie rzeczy - jest dobra książka jedynie dla tych, którzy o jakimś "technicznym" programowaniu marzą, mają już programistyczną wiedzę, a chcą poznać Javę. Ta natomiast książka uczy w przejrzysty sposób języka od tej strony, która właśnie do zastosowań jakich oczekujesz się nadaje (posługując się tą książką można podłapać i podstawowe idee programowania [od takiej właśnie strony, którą można nazwać "humanistyczną"] i - bez zbędnego wysiłku - poznać język w potrzebnym Ci zakresie). Dostępny jest piracki ebook - również po polsku.
Sam jestem jedynie hobbystą, więc wiem o czym mówię :) Taki paradoks.
alpha_omega [ Legend ]
Moby7777 --
To, że Basic nie jest wzorowany, to oczywiste, stary jak świat. C# jednak jest na tyle, że spotykałem się ze stwierdzeniami, że to właściwie kopia Javy.
Nie znam tych środowisk, ale środowisko Javy, do takich zastosowań, jest takie, że trudno mu coś zarzucić. Ściąga się np. takie darmowe Eclipse i po prostu pisze. Przecież nikt tu nie mówi o tworzeniu engine'u gry. Jakieś tam przeciążenia, czy wartości domyślne, to rzecz, którą można sobie kłopotać głowę przy olbrzymim projekcie. Nie ma to żadnego znaczenia w tego typu zastosowaniach. A i ogólnie - jest to tylko ułatwienie; ułatwienie które się nim staje przy masie kodu jaki chce się napisać.
Ciekaw jestem tylko, czy powielając ideę Javy, MS - tworząc C# - nie nasadził w nim znowu swoich wybitnych zwyczajów, że - aby zapamiętać nazwę jakiejś prostej funkcji - trzeba by być Rainmanem, a żeby zrobić to, co w Javie zajmuje kilkanaście linijek, tam zajmuje kilka stron kodu.
Moby7777 [ Generaďż˝ ]
Chcesz porównać Eclipse do Visuala? Dobrze, że sam przyznałeś się do bycia hobbystą bo bym Cię chyba śmiechem zabił. :P
alpha_omega [ Legend ]
Moby7777 --
Toż mówiłem, że nie znam środowisk programistycznych MS. Miałem natomiast doświadczenia z Winapi - tragedia. Tak czy owak - przecież mówimy o konkretnym projekcie, a nie zaawansowanym programowaniu, więc nie bardzo widzę co chcesz wyśmiewać. Małość innych? Bo ta "wielkość" ms-owych środowisk ma się nijak do tego projektu.
To dokładnie to samo, co polecanie C++, bo to przecież ZAJEBIŚCIE efektywny język, jeśli się go zna na wylot, ZAJEBISTE numery daje się w nim robić, obok operacji niskiego poziomu nawet sam język - po części - programować. I co z tego? Trzeba być upośledzonym, ażeby pisać w C++ coś, co można napisać w 5 minut w Javie. A już na pewno jakaś pycha albo niewiedza stoi za tym, że się w takich wypadkach C++ jako najlepsze rozwiązanie poleca.
Moby7777 [ Generaďż˝ ]
No i tak sobie możemy długo... W każdym bądź razie. Owszem, Visual oferuję MASĘ świetnych rozwiązań przy prowadzeniu zaawansowanych projektów. Z drugiej jednak strony jest też najlepszym możliwym środowiskiem dla początkujących. Świetnie zrealizowany builder pozwala zbudować cały program w zasadzie z klocków - jedyne co zostaje do dopisania to kilka funkcji na krzyż żeby zrealizować specyficzne zadania. Dodatkowo ze środowiskiem zintegrowana jest bardzo rozbudowana dokumentacja, która z jednej strony pozwala znaleźć rozwiązania wielu problemów ale z drugiej oszczędza czas na szukaniu odpowiedzi na proste pytania w necie. I proszę, nie mów mi, że jest docs do javy w necie bo to naprawdę się nie umywa pod względem przejrzystości.
W każdym razie proponuję zakończyć temat zanim przerodzi się to w swoisty flame war.
Do codeine: moim zdaniem, jeśli aplikacja ma być desktopowa to najlepiej będzie jeśli zdecydujesz się na basica, ewentualnie trochę bardziej skomplikowany ale znacznie potężniejszy c#. Jeśli jednak nie chodzi Ci o "desktopowość" to złap się za np. PHP jako język prostszy i dający sporo zalet, które wymieniłem wyżej.
alpha_omega [ Legend ]
Moby7777 --
Po pierwsze: przy tych zastosowaniach, bazujących na wprost przekładalnej na struktury języka logice, wydaje mi się, że składanie z klocków byłoby tylko zbędnym obciążeniem. Jak się człowiek nauczy istoty przebiegu programu, to dużo łatwiej mu myśli na to przełożyć, niż kiedy między nim a sensem stoi jakiś interface. To jak różnica między wyklejaną laurką, a listem. Sprawa wygląda inaczej dopiero wtedy, kiedy nie potrafi się samemu złożyć zdań, za to umie się je powiązać w wypowiedź (jak np. w moim wypadku, jeśli chodzi o AI, czy inne bardziej matematyczne rzeczy). Dopiero wtedy laurka jest pomocą.
Po drugie: i tutaj przyznaję się do zbrodni - wydawało mi się, że jeśli już chce się coś zaprogramować, to nie dla czystej funkcjonalności, ale też zrozumienia czegoś. Bo analogiczny program, najłatwiej - z dużym prawdopodobieństwem - byłoby w necie gotowy znaleźć. I dużo sensowniej jest zacząć wtedy od czegoś, co oddaje istotę, ale jednocześnie uczy radzenia sobie z językiem, niż od czegoś, co istotę wręcz kryje za problemami języka/składni (C++), albo się tylko do najbardziej ogólnej istoty ogranicza, nie pozwalając zrozumieć problemów "wyrażania".
Ja - w młodości - grałem w Carnage Heart, ale programowania musiałem się uczyć inaczej. I w życiu bym nie stwierdził, że to co robiłem w tej grze, to było programowanie (w każdym razie: nie w tym sensie, który wynika z rzeczywistego programowania). Swoją drogą - genialna gierka (polecam emulator psx 1.13, i obraz płyty: na wielu stronach dostępny).
legrooch [ MPO Squad Member ]
A ja nie nawiązując do wojenki polecam cokolwiek z .NET.
Wyklikasz minuta-osiem, doprogramujesz i masz gotowe.
Chcesz mieć w formie Web? Żaden problem. Przerzutka do Windows Application? Praktycznie copy-paste.
codeine [ Konsul ]
Po drugie: i tutaj przyznaję się do zbrodni - wydawało mi się, że jeśli już chce się coś zaprogramować, to nie dla czystej funkcjonalności, ale też zrozumienia czegoś. Bo analogiczny program, najłatwiej - z dużym prawdopodobieństwem - byłoby w necie gotowy znaleźć.
Dobrze Ci sie wydawalo, chce sie czegos przydatnego nauczyc ale nie chce kupowac lopaty jak potrzebna mi jest tylko lyzka :)
Jeśli pasuje Ci aplikacja webowa to zdecydowanie polecam jednak jakąś bazę danych (pewnie MySQL) + JS (dla wygody użytkowania) + jakiś język po stronie serwera ze wsparciem frameworka (PHP z Cake albo Kohaną albo Python z Django).
Dzieki za sugestie, nie wiem tylko czy sie przebije przez to wszystko (ile czasu trzeba poswiecic by sie odnalezc w tych rzeczach): 0->msql->js->php->hero
A ja nie nawiązując do wojenki polecam cokolwiek z .NET.
Na przyklad ten polecany wyzej visual basic?