What does SketchUp 2013 do for developers?
-
@chiefwoodworker said:
And have you ever heard of Unit Test and Developer Console, a console that might have replaced Console if not pushed aside by EW? You might ask thomthom about it.
I'm not following you on this one... The project has seen activity since it was released at Basecamp... https://github.com/SketchUp/sketchup-developer-tools/network
It's all there for anyone to join in on.@chiefwoodworker said:
Do you know what Rails is? Are you aware that it would have nothing to do with rendering performance any more than WebDialog does, and it would certainly be more stable and useful than WebDialog. Bloated? Experiment? You might want to explain that.
Not following you on this one either. It's a web-framework. How much would that benefit SketchUp programming?
@chiefwoodworker said:
Of course no one at Trimble has said the Ruby API is dead. That would be suicide. But if you read between the lines with the last two major releases you have seen no improvement in it, and if you look at the business Trimble is in you might conclude there is no need for it either.
We're not reading along the same lines. Why would SketchUp develop a repository for Ruby API extensions if it where not to invest further in it? And this the the very first major Trimble release - after only a year since they changed owners. You're extrapolating data-points from different data-sets.
-
@thomthom said:
Not following you on this one either. It's [ruby on rails] a web-framework. How much would that benefit SketchUp programming?
Ah, but if we dropped[sup:224df3da]†[/sup:224df3da]
window.load
for javascript<->ruby communication and used xhrs instead, having a web framework could be really useful! That said, rails (and most frameworks) for that matter might be a bit bloated - given the situation many features would likely never be used. What would likely be better would be to implement something like wsgi or rack and then allow developers to deal with requests appropriately (and hopefully a dominant method/framework will arise, which can then hopefully be made available on the extension warehouse as a requirement/dependency library)[sup:224df3da]†[/sup:224df3da] I don't mean remove it; just make it a secondary, legacy option.
Sidenote: I'd still love to see a newer ruby version (1.9.x, 2.x), a complete ruby install dedicated to SketchUp (no external installation required, full library available), and rubygems support (Possiblities: Add a custom named executable to the PATH
skpgem install ...
or give us a method to get the path of the executableSketchup::Gem.install(...) unless Sketchup::Gem.installed?(...)
). Also, a single WebDialog implementation. Use something like WebKit or Gecko so we get the same behavior on both OSX and Windows, as well as some cool new toys (developer kit, HTML5 and CSS3 features, ...) -
@unknownuser said:
Sidenote: I'd still love to see a newer ruby version (1.9.x, 2.x), a complete ruby install dedicated to SketchUp (no external installation required, full library available), and rubygems support (Possiblities: Add a custom named executable to the PATH
skpgem install ...
or give us a method to get the path of the executableSketchup::Gem.install(...) unless Sketchup::Gem.installed?(...)
). Also, a single WebDialog implementation. Use something like WebKit or Gecko so we get the same behavior on both OSX and Windows, as well as some cool new toys (developer kit, HTML5 and CSS3 features, ...)Yes, moving to 1.9 sound like a good idea. No idea how much internal SU work that would require in that clearly there is a lot of code inside the Ruby part which is handling the bridge to internal SU structures. I did a quick sniff test on 1.9 just now and it didn't leap out at me that it would break existing C++ Extensions.
But again if I were in their shoes, you'd have to ask the question as to what engineering gives greatest bang-for-the-buck. Is Ruby 1.8.6 actually blocking adoption of SU? Probably not, but as you say, it perhaps limits some new uses.
A fundamental problem Team SU need to figure is how you offer flexibility/extensibility while discouraging devs bolting on stuff that compromises performance. Perhaps some Extension Warehouse QA should have some "Performance Gates" that are required to go through?
The other thing I would say, having dealt with thousands of SU users, is that while models are getting much larger, it astonishing the number of users who still hang on to a 6-7 year old laptop with a very low power graphics card. Just investing in a modern computer - and certainly a modern graphics card will have huge effect on SketchUp performance.
FWIW I point my users at this website to compare their card and see how very slow they are compared to even a modestly priced modern card: http://www.videocardbenchmark.net/gpu_list.php
Adam
-
@unknownuser said:
no external installation required, full library available
You mean full library as in the Ruby Standard Library?
-
-
@adamb said:
A fundamental problem Team SU need to figure is how you offer flexibility/extensibility while discouraging devs bolting on stuff that compromises performance. Perhaps some Extension Warehouse QA should have some "Performance Gates" that are required to go through?
I hope the QA checks observer events, context menu handlers and validation procs.
-
@unknownuser said:
@thomthom said:
Not following you on this one either. It's [ruby on rails] a web-framework. How much would that benefit SketchUp programming?
Ah, but if we dropped[sup:33hprjh2]†[/sup:33hprjh2]
window.load
for javascript<->ruby communication and used xhrs instead, having a web framework could be really useful! That said, rails (and most frameworks) for that matter might be a bit bloated - given the situation many features would likely never be used. What would likely be better would be to implement something like wsgi or rack and then allow developers to deal with requests appropriately (and hopefully a dominant method/framework will arise, which can then hopefully be made available on the extension warehouse as a requirement/dependency library)I build a nano-webserver (1k code) into my tech both for debugging (point a browser at it to query stuff) and to better support integrated solutions. You can see an example by running LightUp Player and pointing your browser at http://localhost;8080
It would be straight forward to build a well-known socket into SU for WebKit comms.
Or would it better to finish off their original (not unreasonable) approach of having a
skp://
scheme handler?Adam
-
@adamb said:
It would be straight forward to build a well-known socket into SU for WebKit comms.
Or would it better to finish off their original (not unreasonable) approach of having a
skp://
scheme handler?Adam
http
would probably be better because it would "just work" on things likejQuery.ajax
. Just bind listen on a particular port (if already taken, just keep trying the next one). Them it's just of matter of the client getting the information - for pages served by it it is as simple asdocument.location,
, and for remote stuff maybe include it in the user-agent or some other standard header (likeX-SketchUp-Server: localhost:8042
). Then you're communication channel is good to go!Edit: Idea: let plugin developers define subdomains (implemented by local DNS rules). That way we can separate out authors content over a fake domain. (eg,
author.sketchup-dialog.com
, then just use the header to tell the port it is listening on. -
Nice.
And I guess it would be trivial to map
skp://
requests into this automagically. -
NOTHING! Zero! Nada!
One of the main problems I have, is verifying that the script runs in SketchUp.
1. Doing a load "Ruby.rb" in the Ruby Console does NOT always clear out the previous values. Hence I don't even bother to use it anymore. Its sheer insanity to constantly reload SU, then the script to see if the script runs. After 8 hours of programming a Ruby script, I spend more time doing 1. then actual programming.
If anyone here has ever written code in GDL for ArchiCad, you will discover that all the GLD code runs within the Code ArchiCad window, while the results of the code run within a 3D ArchiCad Window. Any changes in the code are immediately translated to the 3d window, while all code errors are immediately flagged in the Code window. You never have to quit ArchiCad while your writing code in GDL. ArchiCad also provides a standard user interface under which all user code is displayed and runs.
Now that's what I call an API!
-
In my opinion there are several things that are doing well in Trimble
But I see a couple of errors:-
when opening sketchup 8 will not get a notice to upgrade to 2013 version (because of this, they will lose millions of users)
-
in "Sketchup 2013 free" entities transformations performed more slowly than "Sketchup 2013 pro" and "Sketchup 8". These things are really serious errors
(google translator)
-
-
You were always told to update regardless of the version for the last few releases.
And there's no performance difference between Make and Pro from what I can tell.
-
@dacastror said:
- when opening sketchup 8 will not get a notice to upgrade to 2013 version (because of this, they will lose millions of users)
It does update. Unless you have a firewall that blocks access.
@dacastror said:
- in "Sketchup 2013 free" entities transformations performed more slowly than "Sketchup 2013 pro" and "Sketchup 8". These things are really serious errors
Got a reproducible sample case for this?
Advertisement