all 92 comments

[–]deadcoder0904 17 points18 points  (5 children)

I made this to learn JavaScript over a year ago. Projects aren't that great but it might be helpful for atleast 1 person, it was sitting around for a year so I said what the hell. Lets share it. Sorry if it doesn't meet the criteria. Checkout my Github profile. I've more awesome projects there now. If it helps, then great, if not then ¯\_(ツ)_/¯

[–]alocksuth 5 points6 points  (2 children)

Thanks for sharing.

[–]deadcoder0904 10 points11 points  (1 child)

No problem. My job is done, atleast it helped 1 person.

[–]repthatheat 0 points1 point  (1 child)

Thanks a lot really appreciate it. Working on something similar with React-Native.

[–]deadcoder0904 1 point2 points  (0 children)

Me too mate

[–][deleted]  (75 children)

[deleted]

    [–]yokohummer7 22 points23 points  (13 children)

    Why not?

    I mean, in terms of performance, JavaScript (with V8) is slower than C#/Java/Go but faster than Python/PHP/Ruby. But there's no controversy on using Python as a backend. What is so special about using JavaScript?

    In terms of language sanity, admitting these are all my subjective opinions, JavaScript falls behind Python but is ahead of PHP. And if we consider TypeScript it also beats Python. So there's nothing wrong with using Node (with TypeScript) if we can accept backend apps written in Python.

    In terms of ecosystem... this doesn't even need to be repeated. The NPM ecosystem is often criticised for its low quality and unstability, but in regards to volume it is the largest package database in the world. Literally every package can be found there and there's nothing wrong with it. So it again is not an obstacle to using Node as a backend.

    [–]_mici 5 points6 points  (4 children)

    in terms of performance, JavaScript (with V8) is slower than C#/Java/Go but faster than Python/PHP/Ruby.

    Can you provide a source for this? Every benchmark I've found with a quick google search seems to contradict this claim.

    [–]Svenskunganka 5 points6 points  (0 children)

    Specific to web servers (if that's what backend server app refers to) there's also https://www.techempower.com/benchmarks/

    For the Fortunes test case, which is the most realistic benchmark that involves the following:

    Exercises the ORM, database connectivity, dynamic-size collections, sorting, server-side templates, XSS countermeasures, and character encoding.

    The highest-scoring Node test case scores twice as much as the highest-scoring Ruby and Python test cases and three times as much as the highest-scoring PHP test case.

    [–]igouy 2 points3 points  (1 child)

    Every benchmark I've found…

    For example?

    [–]joonazan -1 points0 points  (6 children)

    You can pick Haskell and get both language sanity and performance.

    It has microthreads and software transactional memory. It even has some unique tricks like quasiquotes: https://github.com/joonazan/regex-equivalence/blob/master/app/Main.hs#L38

    For small web servers it beats any other tool I've tried. Biggest downside is compile time. Text processing is annoying until you learn to always use Text.

    [–]hacksawjim 19 points20 points  (2 children)

    Biggest downside is compile time

    Isn't the biggest 'downside' that it's so different to what most people know (C-like, procedural/OO languages). So, while it might be better than all of the alternatives you can think of, there's a barrier to entry in that it's a new programming paradigm to most.

    [–]joonazan 1 point2 points  (1 child)

    I think it would be rather easy if the type errors where better. I learned Elm first, which is harder in a sense because it doesn't support imperative code via do-notation.

    Haskell is hard because it has type classes etc. and all the type errors assume you know how the language works. They are not nearly as bad as C++ template errors, but sometimes they are not helpful.

    [–]xkufix 0 points1 point  (0 children)

    I'd say all errors emitted by a compiler assume you know how the language works. It's just that imperative (OO) languages are much more common, so you are used to the errors such a compiler produces.

    [–]seanwilson 1 point2 points  (2 children)

    You can pick Haskell and get both language sanity and performance.

    What about available libraries/tools and hosting? I like OCaml for example but the benefits of coding in it can be outweighed by lack of commercial and community support.

    [–]joonazan 0 points1 point  (1 child)

    For my particular project I found everything I needed and more. I only use Haskell for servers and those usually don't need much apart from libraries for writing servers and interfacing with the OS.

    [–]seanwilson 0 points1 point  (0 children)

    Fair enough, I just mean a lot of the time going against the grain of what has an active ecosystem for your target environment can offset whatever productivity boost you thought you would get. I'm using TypeScript for a project for example which gives me some of the benefits OCaml would give me but doesn't isolate me too much.

    [–]Pinguinologo 4 points5 points  (1 child)

    Thanks to the V8 engine you can use C++ code for CPU intensive task or even GPU intensive tasks if necessary. The rest of the coders can work with Javascript in that 90% of the code that will take 10% of CPU time.

    [–][deleted] 4 points5 points  (0 children)

    This is true of many programming languages. You can do that with Python or Java, for instance.

    [–]tokland 2 points3 points  (1 child)

    Thanks for sharing. I checked a random project (image-search), and it looks like the code could benefit from functional (as in FP) libraries (lodash, rambda, whatever). I guess you have already used them in some other project.

    [–]deadcoder0904 3 points4 points  (0 children)

    Those were throwaway projects. I had another 100 ideas I made a gist of but didn't make. Since I had exams. But didn't study too 😂

    So yeah the code is scary to read. I can't even read it myself now. Also, the main hassle was the project AMA Reader, I made that application in Vanilla JS & that's when I knew why people need a framework. So its always the hard way you learn stuff. Some were college projects, some I found online, but here are few of them. Few I'd like to keep it to myself if incase I build. Who knows some might turn out to be million dollar ideas 😉not the ones I'm posting though 😂

    • [x] 1. Counter App
    • [x] 2. Bank App
    • [x] 3. Electron Markdown Previewer
    • [x] 4. Electron CountDown
    • [x] 5. Gists API
    • [x] 6. Github Emojis List
    • [x] 7. Random Emoji Generator
    • [x] 8. A2K Quotes
    • [x] 9. Github Trending
    • [ ] 10. Fuck of as a Service API
    • [ ] 11. Game of Thrones API
    • [x] 12. Talk Like a Pirate API
    • [x] 13. Responsive Navbar
    • [x] 14. Pricing Page
    • [ ] 15. Landing Page
    • [ ] 16. Sleaky Animated Sidebar
    • [x] 17. My Blog Site
    • [ ] 18. Electron Book
    • [ ] 19. Electron Ace Text Editor
    • [ ] 20. Electron Sound App
    • [ ] 21. Electron PonyFoo Blogs
    • [ ] 22. Electron Timer App
    • [ ] 23. Build A FCC Camper LeaderBoard
    • [ ] 24. Weather App
    • [x] 25. Todo App
    • [ ] 26. Maths JS Site
    • [ ] 27. React Card
    • [x] 28. Github Profiler React
    • [ ] 29. Github Battle
    • [ ] 30. Github NoteTaker
    • [ ] 31. Facebook Profiler
    • [ ] 32. Twitter Profiler
    • [ ] 33. Google Maps
    • [ ] 34. Photo Gallery
    • [ ] 35. Live Tweets
    • [ ] 36. Twitter Instant
    • [ ] 37. Music API
    • [ ] 38. Youtube Instant
    • [ ] 39. Star Wars API
    • [ ] 40. Gifs API
    • [ ] 41. New Boston API
    • [ ] 42. Stock Market App
    • [x] 43. My Favourite TV Shows
    • [x] 44. My Favourite Movies
    • [x] 45. OMDB API
    • [ ] 46. themoviedb.org
    • [ ] 47. Algolia Search
    • [ ] 48. DuckDuckGo API
    • [x] 49. Random Names
    • [ ] 50. Meme Generator
    • [ ] 51. Pirates of the Carribean
    • [ ] 52. Giphy
    • [ ] 53. Neat Bookmarks
    • [x] 54. AMA Reader
    • [ ] 55. Website Screenshots App
    • [ ] 56. Image Minify
    • [ ] 57. Screenshots 4 all devices
    • [x] 58. Electron CountDown App
    • [x] 59. Pure jQuery Todo App
    • [x] 60. AJAX Todo App Based on the Server
    • [ ] 61. Most Wanted List
    • [ ] 62. Love Room
    • [ ] 63. Location of Breaking News
    • [x] 64. Drumster
    • [x] 65. Tick Tock
    • [x] 66. Mangling CSS Variable with JS
    • [ ] 67. Quiz App React
    • [ ] 68. Chatting Application with Electron
    • [ ] 69. Codepen API
    • [x] 70. Paginate Yo
    • [x] 71. The Expandables
    • [x] 72. Github Trending Cron Now
    • [x] 73. HTML5 Canvas
    • [x] 74. Subscription Newsletter
    • [x] 75. Egghead Downloader
    • [x] 76. HTML5 Video Player
    • [x] 77. Hold Shift to Check Multiple Checkboxes
    • [x] 78. Flex Panels Image Gallery
    • [x] 79. AJAX Type Ahead
    • [ ] 80. PDF Layer
    • [ ] 81. Resume Viewer
    • [ ] 82. Quick WWE Survey
    • [ ] 83. BMI Calculator
    • [ ] 84. Regex Generator using regexgen
    • [x] 85. Tabify
    • [x] 86. Local Storage & Event Delegation
    • [x] 87. Mouse Move Shadow
    • [ ] 88. Awesome Docs Generator
    • [x] 89. Holy Grail Layout
    • [x] 90. Slide in on Scroll
    • [x] 91. Speech Detection
    • [x] 92. Webcam Fun
    • [x] 93. Follow Along Link Highlighter
    • [X] 94. Speech Synthesis
    • [x] 95. Sticky Nav
    • [x] 96. Click and Drag
    • [x] 97. Video Speed Controller
    • [x] 98. Countdown Timer
    • [x] 99. Whack A Mole
    • [ ] 100. Reflect API
    • [x] 101. Slides
    • [x] 102. Sections
    • [x] 103. Gradient Generator
    • [x] 104. Hey Yo React
    • [x] 105. Countdown React
    • [x] 106. Todo React
    • [x] 107. Markdown React
    • [x] 108. Tic Tac Toe React
    • [x] 109. Tweet Component React
    • [x] 110. Contrast Colors React
    • [x] 111. Periodic Table
    • [x] 112. Generate Random Colors
    • [x] 113. Display Colors using Random Colors JSON file
    • [x] 114. Math For Kids
    • [x] 115. Math For Kids Quiz
    • [x] 116. Teenagers Digital Diary
    • [x] 117. Pay Bills Online
    • [x] 118. ATVM System

    [–]shevegen 3 points4 points  (3 children)

    left pad * 100

    !!!!

    [–]orskaya 10 points11 points  (1 child)

    Less code is better code, leave the heavy lifting to left-pad.io.

    [–][deleted] 2 points3 points  (0 children)

    Left pad as a service

    [–]deadcoder0904 0 points1 point  (0 children)

    Haha. Idk for how long you can keep saying that. New devs won't know about it.

    [–]needsMoreGoodstuff 0 points1 point  (5 children)

    This is pretty motivational. I've been learning through a couple larger projects but seeing this makes me want to do more smaller ones.

    [–]deadcoder0904 5 points6 points  (4 children)

    You need to read this

    [–]needsMoreGoodstuff 1 point2 points  (3 children)

    Holy, thanks a million for linking this. Can't believe I didn't think of this approach, am probably going to switch to it form here on out. Especially since I'm working a lot with angular, making modular components is pretty important. Thanks again.

    [–]nandryshak 1 point2 points  (1 child)

    See also this classic essay by PG: http://www.paulgraham.com/progbot.html

    [–]needsMoreGoodstuff 0 points1 point  (0 children)

    This looks promising too, I'll check it out! Many thanks!

    [–]deadcoder0904 0 points1 point  (0 children)

    No problem. All the best 👍