Web Application VS Windows Application
-
This post is deleted! -
@WingCreative said:
@travisdh1 said:
@IT-ADMIN said:
what do you think Dear Scott of python programming language, i heard interesting things about it, also it is portable,
also what is the best IDE (has to be drag and drop GUI builder) i can use to make GUI application with it ??
I've used python a little bit with a RaspberriPi doing sensor and light type things. I don't know that it'd be very good for doing GUI, but I'd look at Eclipse by the way of pydev.
I would be interested in hearing more about that in another thread at some point as I'm trying to hook a Pi up to some sensors in my off time... were they i2C sensors?
The sensors were just hooked up via digital io pins. I had a couple LED blocks hooked up via the i2c bus tho. I did all the python code with nano, it's really kinda basic stuff. Proximity sensor, temp and pressure sensor, and a couple LED 8x16 LED blocks. I really just wanted to play around and see what I could do with it, turns out interacting with sensors is quite easy.
-
@dafyre said:
How do you determine the "best language" for a project? Anything you can do in one programming language can be done in another.
That's tough, of course. And that is not completely true, but mostly it is. Some things, like accessing the UNIX system calls requires C, or talking to Windows API requires either C++ or the CLR. Or running across different platforms.
But different languages are expressive in different ways. Ruby is very expressive for making web interfaces. You write a lot less and get a lot more.
Scala is very good at being thread safe. Doing the same thing in JavaScript would be, effectively, impossible.
But some high level things to consider when choosing a language:
- Performance of the developer. This is probably the top concern. Working in Ruby you can do in a day when you could not do in C in a month.
- Expressiveness. This is difficult to qualify, but the more expressive a language the faster than you can work and the more clearly you can work. It makes you productive while reducing errors.
- Language architecture. Does it work in a way that is sensible for the application at hand?
- Frameworks. Choosing a language is often done based on the framework desired or available. For example, if you want to use Rails, you have to use Ruby. If you want to use Meteor, you have to use JavaScript. Frameworks often drive this decision.
- Deployment options. In a world of PaaS, containers and the like, choosing a language with broad support (by Google Railyard, Joyent, OpenShift, Elastic Beanstalk) is important. It used to be just "avoid MS tools to avoid MS lock in", but today it is far bigger as a bad language choice can not just mean investing in MS but might be "running your own servers instead of going hosted." You rarely want your language choice to determine your entire IT strategy.
- Cost. Most languages today are free. But not all. And some are free but have no available tooling.
- Support. VB.NET might be a serviceable language on its own, but no good developers will talk to you if you use it. You'll never hire support in the future or you will pay a premium as everyone willing to keep working with it knows that they have you trapped. Use a language that is able to be supported by programming professionals.
- Forward looking rather than technical debt. Similar to the support point. You want a language with a growing, vibrant ecosystem for advice, tooling, advancements, a future, etc. For example, that PHP 7 has just released means that people using PHP suddenly got a "free" 50% performance leap just for having chosen PHP. VB doesn't get leaps like that.
-
@travisdh1 said:
@WingCreative said:
@travisdh1 said:
@IT-ADMIN said:
what do you think Dear Scott of python programming language, i heard interesting things about it, also it is portable,
also what is the best IDE (has to be drag and drop GUI builder) i can use to make GUI application with it ??
I've used python a little bit with a RaspberriPi doing sensor and light type things. I don't know that it'd be very good for doing GUI, but I'd look at Eclipse by the way of pydev.
I would be interested in hearing more about that in another thread at some point as I'm trying to hook a Pi up to some sensors in my off time... were they i2C sensors?
The sensors were just hooked up via digital io pins. I had a couple LED blocks hooked up via the i2c bus tho. I did all the python code with nano, it's really kinda basic stuff. Proximity sensor, temp and pressure sensor, and a couple LED 8x16 LED blocks. I really just wanted to play around and see what I could do with it, turns out interacting with sensors is quite easy.
My dad does Python sensor programming, too.
-
@dafyre said:
How do you determine the "best language" for a project? Anything you can do in one programming language can be done in another.
Generally much farther down on the list is language performance. Ruby is dog slow, in general. Java is screaming fast. But language speed is one of those SMB mistakes that, like many things, people get bogged down worrying about language performance like it was 1982. But computers are so fast today that it is very, very rare that language performance is a major factor. How an application will scale IS a factor, but rarely the language speed itself.
For example, Spiceworks has huge performance issues AND uses Ruby (the slowest modern language.) But their issues are not at all from Ruby itself, but from other design issues (blocking design, for example.) They could have designed around that, gone non-blocking, not used a relational database, etc. and changed the performance dramatically.
-
@IT-ADMIN said:
so what is the coolest language i can learn ?? knowing that my need is the develop GUI application that can connect with database (entreprise application)
There are many. Often the coolest are ones you don't learn casually (Haskell, F#, OCaml, Erlang, Clojure, Scala) as they are different types of languages completely and the learning curve would be absolutely brutal.
But of super modern, super "hip" languages that are broadly usable for many purposes but are actually usable by normal people look at Google's new Go Language, JavaScript on Node.js, Python and Ruby. That's a good starting point.
-
@scottalanmiller said:
@dafyre said:
How do you determine the "best language" for a project? Anything you can do in one programming language can be done in another.
But some high level things to consider when choosing a language:
- Performance of the developer. This is probably the top concern. Working in Ruby you can do in a day when you could not do in C in a month.
By and large, I agree with your last couple of posts about my question. It also comes down to the developer's familiarity with libraries within the language. I can write my app in PHP, and then use a database library that works with MySQL, Postgres, SQL, and a myriad of others without having to physically hand code for each type of database instance. There's no sense in the developer having to recreate the wheel for each application
If I were to use say.... Node or Meteor, I have no idea how to connect those to a database of any kind, so I'd have to learn those languages at the same time as I develop the application, slowing me down.
- Forward looking rather than technical debt. Similar to the support point. You want a language with a growing, vibrant ecosystem for advice, tooling, advancements, a future, etc. For example, that PHP 7 has just released means that people using PHP suddenly got a "free" 50% performance leap just for having chosen PHP. VB doesn't get leaps like that.
Seems like a good reason to keep using PHP to me. 8-)
-
@dafyre said:
If I were to use say.... Node or Meteor, I have no idea how to connect those to a database of any kind, so I'd have to learn those languages at the same time as I develop the application, slowing me down.
8-)Familiarity is certainly a factor. But I think that it is often overrated. Learning a new framework does take time, best not to do that fresh for every project. But often a project is either really large and the time to learn a new language isn't a major portion of it or people tend to do very similar projects over and over again and learning a good way to do that particular project is well worth it.
In all cases (or nearly so) learning the language is pretty trivial. It's learning the framework that takes the big effort. Moving from one PHP framework to another may easily take as much effort as moving from PHP with Cake to Ruby on Rails.
-
@scottalanmiller -- It seems I missed one of your comments about PHP not being an expressive language... Can you give me an example of one that is (I'm just curious as to what you mean by that).
-
@dafyre said:
@scottalanmiller -- It seems I missed one of your comments about PHP not being an expressive language... Can you give me an example of one that is (I'm just curious as to what you mean by that).
Ruby is considered to be on the very expressive side. It is "easier to write ideas" and, more importantly, "easier to read intent."
-
That free book on Functional Python is just begging for some experimentation there.
-
Functional programming is super cool and useful, not likely a step he'd want to take at this point, though. Learning a new language is pretty trivial. Learning a new paradigm, not so much.
-
it is me again guys
i already started a web project using PHP, i want to take your advice regarding the best way of programming in PHP, should i adopt Procedural PHP or Object Oriented PHP??
my previous experience was with J2EE, and i was adopting OOP all the time, but i do not know why i feel not comfortable using OOP way in PHP ??your advice please ?
-
OOP is not necessary. What framework are you using is far, far more important.
-
sorry, but what framework are you referring to, if you mean view, i use bootstrap and jquery, if you mean data modeling framework, ido not use any framework, if you know a framework that facilitate database manipulation please tell me, because so far i connect to the DB in each query
-
before when i was using J2EE, i was using a nice framework called EJB that convert all DB table into classes and generate all necessary methods for each class, it was like DB mapping table -class, if you know anything similar please inform me
thanks
-
@IT-ADMIN said:
before when i was using J2EE, i was using a nice framework called EJB that convert all DB table into classes and generate all necessary methods for each class, it was like DB mapping table -class, if you know anything similar please inform me
thanks
J2EE and EJB are frameworks in a very cursory sense. I'm talking about your MVC framework, like CakePHP or similar.
-
ok thanks, i will take a look over CakePHP,
so no need to use OOP right ?? -
@IT-ADMIN said:
ok thanks, i will take a look over CakePHP,
so no need to use OOP right ??Use what is common to the framework you choose
I'm not recommending CakePHP, I'm not a PHP guy so don't know what is the good options versus the names that I know. CakePHP is relatively popular in the space and a place to look. But don't choose it because I mentioned it, just start investigating there. PHP has a lot of frameworks that are good. Ruby and Python have one main framework that dominates their space and becomes the obvious thing to learn (Rails and Django) but even there it is not a foregone conclusion. PHP lacks this and has lots of smaller potential players.
This is an advantage to Ruby, most people simply choose Ruby on Rails and convention dictates everything that they do.
-
i think this framework will make things complex for me, right now i'm using ajax and json to retrieve data from my DB without refreshing the page, i think i'm ok with my current method, cuz this framwork will take time from me to learn