Recomandati-mi un limbaj de programare

Aici puteti sta la un pahar de vorba cu ceilalti membri despre orice subiect.
georgefl
Junior
Junior
Posts: 12
Joined: 24 Nov 2010, 22:45

Recomandati-mi un limbaj de programare

Post by georgefl » 24 Nov 2010, 23:26

Salut tuturor!

Doresc sa incep un proiect personal insa nu stiu in ce limbaj sa dezvolt aplicatia.

Aplicatia mea trebuie sa:
- scoata informatii despre sistem (nume calc, versiune windows etc.);
- scoata informatii despre utilizatorul care a dat login (numele este deajuns pentru moment);
- detecteze ce ferestre au fost deschise (numele aplicatiei) si ora la care au fost deschise;
- detecteze timpul (ora:minut) cand se inchide o fereastra;
- detecteze ce pagini web au fost deschise si la ce ora (eventual si cand au fost inchise);
- detecteze timpul mort (de la cat la cat nu s-a lucrat la calculator);
- introduca toate datele de mai sus intr-o baza de date MySQL;
- ruleze in background;
- dea LOCK la calculator dupa o perioada de timp mort;
- dea posibilitatea de a crea o interfata cu utilizatorul, protejata cu parola, unde se pot schimba diverse setari (date de conexiune cu serverul, timpul dupa care sa se dea lock etc.);
- nu lase utilizatorul sa dea EndTask la aceasta aplicatie.


In ce priveste programarea sistemelor nu prea am experienta. Experienta mea este mai mult in programare web, in PHP, MySQL, APACHE, JavaScript, insa sunt dispus sa invat. Defapt acesta este si scopul acestui proiect: sa invat si altceva decat ce stiu acum.

Rugamintea mea este sa ma indrumati spre un limbaj de programare ce imi permite sa fac aplicatia de mai sus.
Am incercat sa citesc despre C, C++, C#, .NET, Python, Visual C, Java, insa la un moment dat m-am pierdut in documentatii. :wacko: (probabil in lista asta am comparat mere cu pere, nu?)

Deci, imi puteti recomanda un limbaj de programare? Deasemeni este binevenita orice alta informatie (detalii, comparatii, utilitate) despre aceste limbaje de programare. :thumbup:

Multumesc anticipat pentru raspunsuri! :whorship:



User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: Recomandati-mi un limbaj de programare

Post by Marius Bancila » 24 Nov 2010, 23:41

Ce pot face si in C++ si in C#. Probabil ca unele parti ar fi mai simplu de facut in C# (cu siguranta partea de lucru cu mysql), desi pentru unele lucruri probabil ca trebui apelat la API de Windows oricum.

Atentie, nu poti sti la ce ora a fost deschisa o anumita fereastra. Nu exista o astfel de informatie asociata unei ferestre. Nu exista nici un API care sa-ti dea o notificare ca o fetreastra a fost deschisa. Probabil trebuie sa faci un polling permanent pentru ferestrele deschise; si probabil te intereseaza doar cele top-level, pentru ca altfel for fi multe mii. Cred ca te intereseaza mai degraba procese decat ferestre.
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

georgefl
Junior
Junior
Posts: 12
Joined: 24 Nov 2010, 22:45

Re: Recomandati-mi un limbaj de programare

Post by georgefl » 24 Nov 2010, 23:59

Multumesc pentru promptitudine, Marius!

Din ce am citit pe net, C# ar fi un C++ simplificat, mai la indemana, nu?

In ceea ce priveste ora, nu exista un trigger sau un event cand se deschide/inchide o fereastra noua de windows? As putea sa verific ora la care a intervenit acel eveniment?
Eu am vazut mai demult un keylogger care putea face o lista (un log) cu ce aplicatii au fost deschise (fara timp), si ce se scria in fiecare fereastra (ex: Microsoft Word - tastele apasate cand aceasta fereastra e activa; Internet Explorer - tastele apasate cand aceasta fereastra e activa etc.)

In ceea ce priveste .NET intrebarea mea este "Ce este si la ce se foloseste"?
Cand zici API de Windows, la ce te referi? (stiu, sunt foarte noob :oops: ,insa toate au un inceput)

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: Recomandati-mi un limbaj de programare

Post by Marius Bancila » 25 Nov 2010, 00:47

Acuma, as fi curios, ce experienta in programare ai. Ca daca n-ai auzit de .NET, despre care se vorbeste de aproape 10 ani foarteee mult, as zice ca nu prea ai experienta in programare. Prin urmare, acest program s-ar putea sa nu-ti fie chiar la indemana.
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

georgefl
Junior
Junior
Posts: 12
Joined: 24 Nov 2010, 22:45

Re: Recomandati-mi un limbaj de programare

Post by georgefl » 25 Nov 2010, 01:10

Salut!
Cum scriam mai sus, am experienta doar in programare web, insa as vrea sa invat si altceva. Sunt constient ca este greu, insa nu este imposibil. Oricum nu ma preseaza timpul.

viorel2005
Membru
Membru
Posts: 208
Joined: 24 May 2008, 09:41

Re: Recomandati-mi un limbaj de programare

Post by viorel2005 » 25 Nov 2010, 02:23

Eu am vazut mai demult un keylogger care putea face o lista (un log) cu ce aplicatii au fost deschise (fara tim
Chiar daca ar fi simplu, aplicatia ta trebuie sa se impace cu firewall-ulul utilizatorului.Cei de la Panda spuneau
ca programatorii de programe antivirus creeaza virusi ca sa nu dea faliment. Totusi, m-as bucura daca
pe acest forum ai gasi programatori care sa iti spuna cum sa faci aplicatia compatibila cu un firewall comercial.
Ideea este ca tehnicile de programare folosite pentru asa ceva nu prea se publica pe net.Am vazut nesimtirea
unui programator pe codeproject odata, care a postat un cod mai greu de gasit, dar pentru intrebari la
sectiunea reply a articolului a venit un raspuns de la el, ca nu ofera alte tipuri de solutii ca idee decat cea prezentata,
pentru ca asta inseamna consultanta si el o taxeaza cu 50$/ora.

georgefl
Junior
Junior
Posts: 12
Joined: 24 Nov 2010, 22:45

Re: Recomandati-mi un limbaj de programare

Post by georgefl » 25 Nov 2010, 02:28

Salut Viorel!

Sunt deacord ca firewallul este un impediment, insa se pot adauga exceptii.

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Recomandati-mi un limbaj de programare

Post by cristianamarie » 25 Nov 2010, 09:21

Marius Bancila wrote:Ce pot face si in C++ si in C#. Probabil ca unele parti ar fi mai simplu de facut in C# (cu siguranta partea de lucru cu mysql), desi pentru unele lucruri probabil ca trebui apelat la API de Windows oricum.

Atentie, nu poti sti la ce ora a fost deschisa o anumita fereastra. Nu exista o astfel de informatie asociata unei ferestre. Nu exista nici un API care sa-ti dea o notificare ca o fetreastra a fost deschisa. Probabil trebuie sa faci un polling permanent pentru ferestrele deschise; si probabil te intereseaza doar cele top-level, pentru ca altfel for fi multe mii. Cred ca te intereseaza mai degraba procese decat ferestre.
Global CBT hook si interceptezi HCBT_CREATEWND, ai HWND si cu un GetTickCount/GetSystemTime/GetLocalTime ai fereastra si timpul.
Nuclear launch detected

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Recomandati-mi un limbaj de programare

Post by cristianamarie » 25 Nov 2010, 09:32

georgefl wrote:Din ce am citit pe net, C# ar fi un C++ simplificat, mai la indemana, nu?
Nu. Absolut deloc. Doua mari diferente: 1. C# ruleaza sub un conglomerat numit .NET runtime, C++ nu are nevoie decit OS support 2. C# nu e intentionat pentru operating system code (unde ramin C si C++ in continuare), ci e gindit pentru aplicatii generale. Mai pe scurt, daca vrei sa faci un CRM, C# poate fi o alegere buna, iar C nu prea, dar daca vrei sa faci un device driver, in C# e de-a dreptul imposibil, doar C e posibil.
(Pentru OS, C e singura treaba comuna. Hai C++, care oricum nu te avantajeaza cu nimic in Win32 decit dpdv al codului, nu aduce nimic in plus).
georgefl wrote:In ceea ce priveste ora, nu exista un trigger sau un event cand se deschide/inchide o fereastra noua de windows? As putea sa verific ora la care a intervenit acel eveniment?
Nu. Sau cel putin nu in user mode, poate in kernel mode o fi vreun callback pe la ZwCreateXXX, dar oricum nu te baga acolo decit dupa vreo citiva ani :)
Cum am zis mai sus, un hook global CBT o sa te notifice cu codul HCBT_CREATEWND si atunci vezi tu cit e ceasul.
georgefl wrote:Eu am vazut mai demult un keylogger care putea face o lista (un log) cu ce aplicatii au fost deschise (fara timp), si ce se scria in fiecare fereastra (ex: Microsoft Word - tastele apasate cand aceasta fereastra e activa; Internet Explorer - tastele apasate cand aceasta fereastra e activa etc.)
Keyloggers intercepteaza tastele (de cele mai multe ori, sint tot Win32 hooks, doar ca WH_KEYBOARD_LL/WH_KEYBOARD.
georgefl wrote:In ceea ce priveste .NET intrebarea mea este "Ce este si la ce se foloseste"?
E o platforma/framework (runtime, VM, limbaje de programare, scule de development etc.) care executa cod compilat pentru .NET (compilat CLR, asta e runtime-ul .NET - cum C compileaza intr-un .obj, C# compileaza intr-un obj de-al NET-ului). Toata treaba se executa intr-o masina virtuala care stie sa execute codul CLR generat. Codul sursa poti sa il scrii in orice limbaj care suporta generarea de cod pentru .NET runtime: C#, VB.NET fiind cele mai folosite - in general orice pentru care exista compilator CLR.
Aici mai multe.
georgefl wrote:Cand zici API de Windows, la ce te referi? (stiu, sunt foarte noob :oops: ,insa toate au un inceput)
Totalitatea functiilor documentate (sau nu) care sint expuse de Windows, colectiv numite Windows API (Win32 API).
Aici ai definitia.

... Foloseste Wikipedia cu incredere. Chiar daca nu e 100% valabil, poate, ce e acolo, majoritatea informatiilor sint bune, mai ales cind nu stii mare lucru despre ceva si ai vrea sa afli.
Nuclear launch detected

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: Recomandati-mi un limbaj de programare

Post by Marius Bancila » 25 Nov 2010, 10:59

cristianamarie wrote:Global CBT hook si interceptezi HCBT_CREATEWND, ai HWND si cu un GetTickCount/GetSystemTime/GetLocalTime ai fereastra si timpul.
Ai dreptate. La hookuri nu m-am gandit. :thumbup:
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

georgefl
Junior
Junior
Posts: 12
Joined: 24 Nov 2010, 22:45

Re: Recomandati-mi un limbaj de programare

Post by georgefl » 25 Nov 2010, 11:31

Multumesc tuturor pentru raspunsuri, mai ales @cristianamarie ca te-ai deranjat sa imi raspuns pentru fiecare intrebare.
cristianamarie wrote: E o platforma/framework (runtime, VM, limbaje de programare, scule de development etc.) care executa cod compilat pentru .NET (compilat CLR, asta e runtime-ul .NET - cum C compileaza intr-un .obj, C# compileaza intr-un obj de-al NET-ului). Toata treaba se executa intr-o masina virtuala care stie sa execute codul CLR generat. Codul sursa poti sa il scrii in orice limbaj care suporta generarea de cod pentru .NET runtime: C#, VB.NET fiind cele mai folosite - in general orice pentru care exista compilator CLR.
Aici mai multe.
Sa inteleg ca este, in oarecare masura, asemanator cu Java? Adica trebuie sa ai instalata masina virtuala pe sistem ca sa poti rula aplicatia.

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Recomandati-mi un limbaj de programare

Post by cristianamarie » 25 Nov 2010, 11:40

georgefl wrote:Sa inteleg ca este, in oarecare masura, asemanator cu Java? Adica trebuie sa ai instalata masina virtuala pe sistem ca sa poti rula aplicatia.
Cam asa ceva. Probabil ca MS s-au gindit ca ei n-au un Java, si Windows API - desi "the crown" pentru MS - era destul de dificil de invatat, foarte stufos, mult legacy, si cu un learning curve enorm. Asa ca au invatat din succesul lui VB6 - care, desi era folosit pentru majoritatea aplicatiilor mici pe Windows, isi cam atinsese limitele - si au vrut sa obtina best of both worlds.
Daca au reusit sau nu? Eu zic ca da, dar sufera de aproape aceeasi problema ca si Java (ba chiar mai mult): lumea incearca sa il faca right tool for the job, chiar si cind nu e. Asa au aparut monstruozitati gen NT Services scrise in C# (cum inainte erau services scrise in MFC... 99% pentru singurul motiv ca MFC avea CString iar Win32 n-are).

IMHO - eu as incerca mai degraba cu Python. E mult mai rapid de facut ceva, cind intri in cacao, intri din cauze clare - in .NET sint 1000 de cai prin care poti avea probleme fara sa intelegi imediat de ce si cum.
Nuclear launch detected

georgefl
Junior
Junior
Posts: 12
Joined: 24 Nov 2010, 22:45

Re: Recomandati-mi un limbaj de programare

Post by georgefl » 25 Nov 2010, 12:54

Dar cu Python pot indeplini toate cerintele aplicatiei?

neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: Recomandati-mi un limbaj de programare

Post by neagu_laurentiu » 25 Nov 2010, 13:15

Un sistem de operare expune/ofera metode prin care comunici cu el. In cazul Windows (ca de altfel majoritatea) C/C++ & WinAPI & WDK e primul nivel. Restul dupa gust !

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Recomandati-mi un limbaj de programare

Post by cristianamarie » 25 Nov 2010, 13:28

georgefl wrote:Dar cu Python pot indeplini toate cerintele aplicatiei?
Toate nu, dar nici cu C# nu poti. Si chiar daca final product nu o sa fie Python, e relativ usor de prototipizat ceva in .py decit in .NET. Oricum, era doar o sugestie.
Nuclear launch detected

Post Reply