## zscdragon Group Title A question for the developer of this website: in which programming language are this site's core functionalities made? (except of course html, css) one year ago one year ago

1. JA1 Group Title

HTML/CSS are all client side, ao are you asking for the server side or client side?

2. JA1 Group Title

so*

3. JA1 Group Title

Anyways "core" I would guess means the server side, and so the server is made in Scala (Primary) MongoDB, and a couple more, back me up on this @thomaster I kinda forgot xD

4. zscdragon Group Title

The reason I'm asking this is that my school wants to implement something like openstudy for teacher-students aid or student-student mutual aid. Since openstudy has been around for quite a while, what's the best solution to handle server side management with today's technology?

5. JA1 Group Title

I don't really get what you mean? What exactly are you trying to accomplish?

6. zscdragon Group Title

to make a website similar to openstudy (real time question + answer without refreshing page, level system, chat system)

7. JA1 Group Title

You want it with all the bells and whistles or just the basic core functionality?

8. thomaster Group Title

He just said only the questions and answering :P no smartscore or chat stuff

9. JA1 Group Title

He said level system thom..... :P

10. thomaster Group Title

smartscore = a level system :)

11. zscdragon Group Title

yea pretty much those 3 :P

12. zscdragon Group Title

but the real time interactive questoin + answer is the most important, that should be done above all :)

13. zscdragon Group Title

i'm somewhat experienced in programming, know javascript, mysql and python, but guess that's not enough?

14. JA1 Group Title

Ok so you really don't have to go the same way OS went, if it makes it any easier your school could introduce a new system made out of something more manageable (another language) and they could build a new one that is a lot simpler

15. JA1 Group Title

That's pretty close to enough

16. JA1 Group Title

17. zscdragon Group Title

which programming language would u guys suggest that does the best job? people say javascript is insecure and php is dislike by lots of people (i dunno why tho)

18. zscdragon Group Title

ok thanks :)

19. thomaster Group Title

20. JA1 Group Title

Javascript, html, css, ajax, etc.. all these langauges are mainly Client Side, what you want is server side, for server you can use Python, Scala, CGI/PERL, ASP, DJango (frame for python) Cold Fusion, JAVA (arguably the most robust and powerful platform for server side, Other than that you can look around for others, but you might want to speak with the school IT about all this and see what he likes the best.

21. JA1 Group Title

Oh and ASP is just a framework

22. dumbsearch2 Group Title

OpenStudy used Scala (very similar to Java) for all it's server-sided stuff. They used the typical languages, JavaScript, HTML and CSS. Note that for a lot of the answering and posting stuff, it was done with the server, and linked together heavily utilizing AJAX.

23. JA1 Group Title

Oh and ruby is also a good one

24. JA1 Group Title

Honestly the list goes on forever, you need to find a language that suits your needs and your IT's needs

25. JA1 Group Title

Everything else is minimal.

26. dumbsearch2 Group Title

And the main reason why PHP is disliked is for only one reason: It is not that efficient. It is still used quite a bit, because it is quite easy to learn. Facebook finds a solution by being programmed in PHP, yet being compiled to C++.

27. dumbsearch2 Group Title

And the way that you can answer and ask questions uses the server language, it connects to the server... and the Ajax allows the data to be dynamically loaded without any page refresh. Note that I'd prefer Sockets in this case, though for a small website this could be heavy handed. And PHP could still suit your needs quite well. It only gets slow for really big sites.

28. JA1 Group Title

Don't you have a a very basic and stripped down version of OS for emergencies? Maybe you could help him get something like that for his school.

29. dumbsearch2 Group Title

Hmm. I made it in PHP.

30. JA1 Group Title

Well something like that would be good for him, hos school want's a basic functioning website so that's good, and it could also be more like an intranet, you know like only local to the school so they can house the servers there, although I would like to ask, what school is it? I need to know so I can see what type of system they have, I know for my county it's all tied together with the counties servers.Like this http://www.polk-fl.net/

31. JA1 Group Title

The county manages everything, if they go down all of Polk county schools interent goes down, that's how it works in florida, the county is the manager.

32. zscdragon Group Title

it's a private highschool in montreal, Canada, Brebeuf College. So school manages it itself :)

I put up some details of the technology OpenStudy uses at http://openstudy.com/updates/4f41c098e4b0803c6353192f a while back.

34. JA1 Group Title

I knew shadowfiend would listen to the cry of distress ^,^

35. dumbsearch2 Group Title

Haha Yes, OpenStudy also uses the Lift framework.

PHP's downside is generally not considered to be its speed, though that can contribute. It's considered to be a somewhat convoluted language that implements certain language features that make it more difficult to reason about the program in a safe way, and more difficult to create maintainable programs.

37. JA1 Group Title

I was actually toying around the source files right when this came up xD

38. dumbsearch2 Group Title

@shadowfiend Efficiency is a large factor I've heard. Languages like Node.js can handle stuff a lot faster

You could make something similar using Python and the Twisted framework. There are probably better abstractions layered on it at this point. Personally, I don't think there's anything out there that really holds a candle to Lift for real-time application development at the moment. The concepts that Lift uses to express real-time applications (actors in general and comet actors in particular), once you understand them, are extremely powerful and extremely simple to reason about.

Efficiency and scalability are words that get thrown around a lot without most people really understanding what they mean. At the scale that @zscdragon is talking about, the difference would likely be negligible.

Lift's concepts as opposed to Node, which is still mostly either a mishmash of callbacks or abstraction layers that hide so much from you that you don't really know for sure when you start losing messages and such.

42. JA1 Group Title

What about Python with DJango framework? I have seen some rather astonishing applications.

I've seen some solid apps with Django, but I don't know that there's any built-in support for real-time applications.

44. JA1 Group Title

That website I sent you is all DJango with Python on server, I have seen it myself.

45. JA1 Group Title

Here is the source, https://github.com/reverie/yourworldoftext

46. dumbsearch2 Group Title

@shadowfiend One thing I know is that this site is extremely slow. It's over-reliant on AJAX or similar technologies. Have you tried switching this site to some socket.io based technologies?

A valuable lesson to learn is to never assume you know the reason something is slow.

Until you actually get in the code. 90% of the time, you're wrong.

AJAX has nothing to do with slowness on OpenStudy, congestion has everything to do with it.

And all of that happens in the backend.

51. JA1 Group Title

That's actually very much true, you can't assume

Sockets have little serious benefit over long-poll comet requests.

53. dumbsearch2 Group Title

I can show you all those scripts running unnecessarily fetching info at selected intervals.

54. JA1 Group Title

But AJAX does present a problem with loading unnecessary things. It does probably have a factor to do with the client side beng slow and acting up while others are fine.

55. dumbsearch2 Group Title

On larger scale websites, sockets do have a very large impact. I've seen it.

You're seeing long-poll requests, which are cheap to set up and return zero data when there is nothing to return.

57. dumbsearch2 Group Title

And I did get into some of the client-side code.

58. JA1 Group Title

Question, why was scala chosen when there are so many other languges that are uch more powerful, I mean Python and JAVA are very powerful platforms.

The client side is slow due to a large number of active components that are propagating changes that force more redraws and relayouts and such than are necessary for any given set of changes. We never really got around to optimizing that aspect of things. Here's some good discussion on long polls and sockets: https://groups.google.com/forum/#!searchin/liftweb/socket/liftweb/1fa3rolbnvI/enV5CFm2Rd4J .

There are no languages that are “much more powerful” than Scala. There are some languages that approach problems differently. Scala runs on a proven platform (the Java Virtual Machine) that has had hundreds of thousands of man-hours poured into its scalability and deployment stories.

61. JA1 Group Title

I love this guy, he teaches us so much v.v

It also provided us a ridiculously high developer productivity, and large compile-time guarantees that reduced the need for separate testing.

63. JA1 Group Title

Ah I see

That, and Lift is in Scala. It's got some of the best abstractions and approaches to web development I've seen since I started working on the web.

65. dumbsearch2 Group Title

Despite being a programmer, thank you for debunking some long-time myths!

66. JA1 Group Title

He is truly a yoda of OS

67. dumbsearch2 Group Title

I also heard a lot of people saying how inefficient PHP is speed-wise... Something I didn't want to believe, being quite a programmer of it! Thanks for debunking these rumors :-)

Don't get me wrong, I'm not saying PHP isn't slower than many other languages. What I'm saying is there are many situations where that *just doesn't matter*.

69. dumbsearch2 Group Title

Hmm. I noticed that too.

70. dumbsearch2 Group Title

But don't you think that they'res a reason why Facebook has a framework for converting the PHP code to C++? I think it's very subtle. So your point is that it would only matter on a very large website.

I would also encourage you to move outside of PHP. Not because PHP is good or bad or better or worse, but because there are few things as useful to a programmer as the ability to move between languages.

72. dumbsearch2 Group Title

Indeed.

Yes. Facebook was running 13 million queries per second in their backend sometime in 2010, and they've only grown since then. Their scale is ridiculous, and there are only a handful of sites out there that ever need to scale to that level. Twitter, by the way, uses Scala in their backend.

74. JA1 Group Title

What about a DJango + Pusher type thing?

< shrug > That's a perfectly viable opportunity.

Er… Option heh.

77. dumbsearch2 Group Title

@uri why don't you give @shadowfiend the medal? he deserves it! ;)

79. JA1 Group Title

But I do think OS is good as is, but there are just so many option out there, not to mention that we need some SERIOUS optimizing done to make it work smoother.

80. ChrisJP Group Title

I humble at the feet of all of you :l *bows*

81. Dean.Shyy Group Title

Some browsers have source inspection. Take a look at the source and see what programming language is utilized. Maybe that will help.

82. JA1 Group Title

Um no, that's only client side @Dean.Shyy

83. JA1 Group Title

The javascript, html, css, ajax type thing.

Lift actually leaves some traces in the client side, as well ;)

All right folks, that's it for me. Time to get back to work. Have a good one!

86. JA1 Group Title

Yes I saw the lift files

87. dumbsearch2 Group Title

I know, @shadowfiend I saw some JavaScript referencing to the Lift

88. JA1 Group Title

Goodbye master *bows*

89. dumbsearch2 Group Title

What about node.js? I'm quite a pro at JavaScript, and I'm wondering about node.js

90. dumbsearch2 Group Title

as a server language

91. JA1 Group Title

I hope your trip back to coding planet is smooth.

92. dumbsearch2 Group Title

BTW @shadowfiend I never knew that Twitter was done with some Scala!!

93. JA1 Group Title

It says on the scala page. thats how I found out lol

My opinion? Don't bother. There's nothing interesting about using node.js on the server, and if you get a job that requires you to use it you'll be able to learn it fast. Pick something more challenging. Clojure, Scala, something like that.

95. dumbsearch2 Group Title

Whats wrong about node.js? It seems to work beautifully smooth

96. dumbsearch2 Group Title

Python?

By the way @shadowfiend Why doesnt upenstudy update their mathjax and LaTeX version so we can use the full version?

98. JA1 Group Title

Actually more like a django interface

99. dumbsearch2 Group Title

BTW you seem to love Java-similar languages @shadowfiend ;)

100. JA1 Group Title

Well JAVA is very powerful, no surprise he would use it since he is very knowledgeable on the best languages xD

101. dumbsearch2 Group Title

@shadowfiend had actually shown me on another post the Lift-part of OpenStudy, and how I could use it as an API.

102. dumbsearch2 Group Title

@JA1 I've heard Java being criticized for it's messy syntax. Dunno if it's another rumor.

That was enough to bring me back for a second—avoid Java at all costs. It's basically the lamest language out there. In my opinion :p Others disagree ;)

104. JA1 Group Title

It's bloated yes, but it's a good option I don't like it myself but hey, it's out there xD

105. dumbsearch2 Group Title

Really? But I've heard that Scala and Clojure seem similar to Java...

106. JA1 Group Title

I love how he came back after that comment xD

Node is kind of boring, presents very little that is new to web development, and uses an approach to concurrency that is fundamentally confusing instead of making it clearer (strictly speaking, it isn't concurrency, but whatever).

108. JA1 Group Title

I vety much like DJango frame with python, It just calls me for some reason :/

109. dumbsearch2 Group Title

Hmm. It's trying to mix JavaScript and server, so its not really original aka worth learning ?

Both of those run on the Java virtual machine, but that doesn't mean they're like Java. Scala shares some superficial features with Java, but is a very very different language.

The only interesting thing, in my opinion, about Node, is the ability to run certain parts of your code identically on server and client.

112. dumbsearch2 Group Title

Alright :)

113. JA1 Group Title

Scala simply runs in the same environment as JAVA

Now I'm really out. Don't provoke me again :p

115. dumbsearch2 Group Title

Thats why I was interesting shadow, though maybe I shouldn't try to adopt a language which I already know a lot of, and maybe I should just start something entirely different :)

116. dumbsearch2 Group Title

117. JA1 Group Title

Okay *stops all JAVA appraisal*

118. dumbsearch2 Group Title

I wish you could be our admin again

Me too @dumbsearch2

120. JA1 Group Title

I hope you never leave OS, you are the only hope we have :'(

He is an admin, just without coding.

122. JA1 Group Title

He can still code.

123. dumbsearch2 Group Title

But he doesn't for OpenStudy anymore.

Yes, but he no longer codes for openstudy. He has admin privs just doesnt work for OS

125. JA1 Group Title

Yes but he has the access to do it, just he doens't work here anymore.

126. JA1 Group Title

Forever will we miss you shadow, all we have now are supposed "admins" but I fear we have little to none xD

127. JA1 Group Title

They are ghost admins lol right @dumbsearch2

"Access" yes. Technically a person who works at area 51 has indefinet access to the facilities as long as they dont give up information. Now, am I comparing @shadowfiend to someone who works at area 51 no. Nor, am i comparing Openstudy to area 51. We still have a great team of admins but the original's were still very much the best of the best.

The spelling in that sucked

130. dumbsearch2 Group Title

Lol. What team of admins. List one new feature

131. dumbsearch2 Group Title

Or fix

132. JA1 Group Title

xD @dumbsearch2

*indefinite

134. dumbsearch2 Group Title

Is seems like the main problem is that the server is really slow thats why it takes so long to connect to it using the JavaScript code. NOW I'm wondering why doesn't OpenStudy get new servers

135. JA1 Group Title

All we have are amazon techs and maybe a few (1-4) admins who just put bandaids on this website.

Does Chris still work on the site?

137. dumbsearch2 Group Title

1-4 admins? Lol I guess 1

138. JA1 Group Title

Spruge?

139. JA1 Group Title

xD dum

140. JA1 Group Title

sprauge*

Yes Ja. Does he?

142. dumbsearch2 Group Title

The problem lies with the congestion with the servers Interesting!

143. JA1 Group Title

Chris abandoned the ship a long time ago.

144. dumbsearch2 Group Title

HMM

Exactly! Now if we could only get some blasted funding to the site to get larger better servers we could expand the site tremendously.

146. dumbsearch2 Group Title

147. zscdragon Group Title

man.. if only electrons move faster..

148. zscdragon Group Title

haha sure ;)

149. JA1 Group Title

We need to write a letter to Bill Gates and have him fund us again.

150. JA1 Group Title

@billgates

151. JA1 Group Title

lol

@.Sam. should delete this with an absolute disregard for all things historical simply out of the meanness in his heart...

153. dumbsearch2 Group Title

da heq?

154. JA1 Group Title

Actually, we should seriously write him, he is a philanthropist.

Lol he is also a masseuse

156. dumbsearch2 Group Title

Anyways, now I won't have to go through the burden of going through all my PHP code for my social media site and convert it to node.js and sockets. Byebye! :) Off to programming!

@shadowfiend Works full time as a Masseuse...I know because it shows up in hidden places all over the site.

158. JA1 Group Title

Honestly OS needs a revamp, forget the Hackathon, it's too small with not many coders, we need to start writing some letters, calling some numbers, and get some serious funding and get new admins, new servers, bring back the old admins and have them help out with the new site, then get some good collaboration from users and get new mods, new system, neew everyhting, we need to respark that candle that is long since turned off.

159. JA1 Group Title

Who here agrees!

160. thomaster Group Title

$$\sf\Large +1$$

161. JA1 Group Title

But jokes aside, we really need something new, OS is dying, maybe not as fast as we think but it is dying. @Preetha

162. dumbsearch2 Group Title

Yes. And we three programmers could help when necessary :)

163. JA1 Group Title

*cough* I am not a programmer *cough*

164. JA1 Group Title

But heck, I could learn in no time, the only reason I don't l know much programming is because I have no motivation to learn, but if we were to seriously make this new OS I would pitch in 140%

165. JA1 Group Title

Scala is a relatively easy language, and besides, I got a couple of buddies that would help wonders here.

166. dumbsearch2 Group Title

It is *not* easy, @JA1 But you're smart :) You could learn in like 2 months :)

167. dumbsearch2 Group Title

But at least we're developing a mobile app. And the future is in mobile... http://openstudy.com/study#/updates/51d86b86e4b015ed74216169

169. dumbsearch2 Group Title

Lol

170. JA1 Group Title

PSSHTT you underestimate me dumb, I know nothing about programming, but I can learn any language in under one month, scala is a fancy JAVA nothing more.

171. JA1 Group Title

I learned HTML/CSS in under a week but then again that's a grade school langauge lol

172. dumbsearch2 Group Title

2 months is very short to *master* a language.

173. JA1 Group Title

Obkect oriented is much harder

174. dumbsearch2 Group Title

You learned every single CSS code in a week? Lol

175. JA1 Group Title

Master is another concept, just the basics is what you need.

176. dumbsearch2 Group Title

Depends

177. JA1 Group Title

When using javascript you can't memorize everything, you simply apply a little bit to what you need.

178. dumbsearch2 Group Title

Lol xD I know you could do it... Haha

179. dumbsearch2 Group Title

Let's start soon.

180. JA1 Group Title

But I need motivation ;-; @Preetha

181. dumbsearch2 Group Title

I have to be heading out for some programming, so see you peoples :)

BULL! Not to be rude AT ALL, but there is no way under the sun to fully learn and flawlessly execute a coding language in under one week. ANY coding language. That is just as difficult as learning Japanese in a week and speaking it fluently.

183. JA1 Group Title

If preetha goes down with this new funding and new OS thing then I will quickly join in.

184. zscdragon Group Title

damn u guys are such geniuses.. :S

185. dumbsearch2 Group Title

aw, nah @zscdragon :]

186. JA1 Group Title

HTML is a basic language and is not object oriented, very easy to learn in one week....

How old are you guys anyway.

188. dumbsearch2 Group Title

HTML, yes, (if you work on it a lot), but CSS, NO.

189. JA1 Group Title

CSS may take longer to "master" but HTML can be learned in days xD

190. dumbsearch2 Group Title

@SnuggieLad Take a chill pill. Are you okay?

192. JA1 Group Title

<j1>this is easy dawg</h1>

193. JA1 Group Title

oops h*

194. dumbsearch2 Group Title

You don't know, snuggie? Let's turn that back to you. How old are YOU?

195. JA1 Group Title

He is 17..

17

197. JA1 Group Title

I have the memory of an elephant...

198. dumbsearch2 Group Title

It took me a year to master PHP and JavaScript. This is, master. @JA1 BTW lets invent the <ja> tag haha

199. dumbsearch2 Group Title

@SnuggieLad Why does it matter? Your question appears to be a direct result of wanting to be rude

200. JA1 Group Title

xD that would be rad, and yes but javascript is a LONG langauge and there is much to learn.

201. thomaster Group Title

You're going to break the record for longest post :P

202. JA1 Group Title

@hartnn you are so chill xD

203. JA1 Group Title

lol that's what happens but oh well, preetha get's the message of the whole revolution thing.

204. JA1 Group Title

good we all chill now #sochill

205. uri Group Title

I'm deleting it. ":3

206. dumbsearch2 Group Title

We'll all be chill then ;p

207. uri Group Title

<3

208. dumbsearch2 Group Title

<3

209. JA1 Group Title

WE STILL FIGHTING geezus

Forgive ok...Forget No. No, We are not fighting.

Not me.

212. uri Group Title

i didnt eevryone saw you were abusing are very respectable user @SnuggieLad not once,But like 10 times :3

213. uri Group Title

our*

Thank you Uri

215. JA1 Group Title

xD uri

216. JA1 Group Title

History < FUTURE

Forgiven as I said sean. But not forgotten.

218. uri Group Title
219. JA1 Group Title

But if you forgave him no need to feel any resentment towards him.

220. JA1 Group Title

lol uri

221. uri Group Title

I wish i could give snuggie the medal.

222. uri Group Title

but thomas gets it xD

223. dumbsearch2 Group Title

Shadowfiend deserves the medal :) He is so intelligent!

224. uri Group Title

For you? for me thomas.

225. dumbsearch2 Group Title

Thomaster is so smart too :)

226. thomaster Group Title

This is getting awkward haha

227. uri Group Title

Intelligent,creative,smart,cute =thomaster.

228. dumbsearch2 Group Title

yep :)

229. dumbsearch2 Group Title

I agree, fully.

230. uri Group Title

Sarcasm ^ aye :P

231. dumbsearch2 Group Title

No, not sarcasm.

232. dumbsearch2 Group Title

He is really smart.

233. thomaster Group Title

234. uri Group Title

HAHA $$\Huge\color{red}{}$$

235. dumbsearch2 Group Title

haha

236. JA1 Group Title

Okay I am off guys, and uri be nice to dumbby and seriously no more arguing over such a mediocre topic.

237. dumbsearch2 Group Title

Me too :) Bye all

238. JA1 Group Title

tata~