Is Java what I'm looking for?

java

#1

I have a question about what Java can do and if it's the language I need for my purpose.

I want to create a GUI program/web app that linguists can use, to help make syntax trees. I want to be able to generate an elementary tree template based on three binary questions, drag and drop nodes to connect trees together or split them apart, delete extraneous branches, and swivel branches around a node.

Can Java do this? If not, which language should I learn?

Thank you.


#2

You're gonna get a different answer for each person you ask.

Are there special requirements/tools you want to use? Use that
If not, do you already know a language? Use that
If not, use Python

You might want to use JavaScript on the client side in browsers, if so, perhaps you might as well use JS for the server as well. It's not as nice as Python, but if you're using anyway..

1) Establish what you want to do.
2) Create a minimal implementation.
3) Re-evaluate what you want to do, go to step 2


#3

I took an intro class to Java many years ago, so at this point I have a passing familiarity with it. But if Python is better suited to the task, I can learn Python. I'm not sure what you're referring to regarding "special requirements/tools". The output is basically text with lines drawn from one level to another, sometimes a triangle if a node is collapsed/not required to be fleshed out in detail.


#4

If the drawing is to happen on the client then you're already locked into JS, that would be a special requirement.
Another might be requiring near-the-metal computation speed.

Java is kind of a "set-it-in-stone" language while Python is more of a "prototyping" language that gets out of your way. It's a bit heavier to get things done in Java and Python is a very agreeable language. If you see yourself doing it in java, then go for that.

Look for what tools you'll need to use, web frameworks and how much is supposed to happen on client side / server side.


#5

I'm willing to learn Python if that's the better tool for the job. I'm not sure how to go about looking for the tools/frameworks/etc. I'm really not a programmer (yet), but I'd like this app to exist and I thought I'd try my hand at creating it.

I don't know what the alternative to drawing on the client is, so I'm not sure if JS really is the only way to do this.

I guess there are some more basic things I need to know before I get started.


#6

If the user is to load a web interface that has no need to interact with a central server and instead just do everything right in the browser, then JS is your language. (unless using some hipster tech ultimately boiling down to JS anyhow)

And then you'd have a server that does nothing but just hand out the code to browsers that ask for it.


#7

Ah. Yes, there's no reason for any of this to not be local. I don't see any reason to involve any server. I take it Python requires a server?

JavaScript it is, then!

Thank you.


#8

Browsers read html and javascript.
Whatever you'd be doing with Python, it would be serving html and javascript to the end user if they are to view it in a browser. Python would be the server.
Python doesn't run in browsers. Java does.. sort of.. but we really just prefer to refer to that as security holes.
Whatever is gonna happen in anyone's browser will be html (skeleton) css (style) and js (functionality)


#9

Ah. So what you're saying is that if I use Python, I'll just end up using JS anyway, so I might as well avoid unnecessarily complicating matters and just use JS directly?


#10

As a side note, how did you customize your avatar? I can't find that option in my settings.


#11

Yes. That's where this was going:

That might be on codecademy.com


#12

All right. Thanks!

(And I had been looking for the avatar settings in the wrong place. Thanks.)