Technology Round-up

| | Comments (12)

I've been doing all sorts of crazy playing around with various things, and keeping up on random topics. And since I've not posted in a while, I figured I'd start a discussion about some various technological "stuff."

1) The Ribbon. I've posted about this before, but have been using it a bit more recently with PowerPoint (getting my REAL World 2007 presentations ready) as well as Word (for RBLibrary stuff). I must admit that I really like working with the Ribbon. I find that I use more features of both Word and PowerPoint than I used to with older versions, not because they're better (generally speaking, they're the same), but because I now know about them! I've been using Word for many, many years -- but this is the first time I've really enjoyed the UI.

2) C++/CLI is the ".NET" version of C++. Basically, it's the C++ ISO standard, with native support for CLI features like garbage collection and the likes. I've been doing some simple projects in it recently, and have really been enjoying the language. At first, I thought it would be difficult to readjust my way of thinking since there are two different allocation schemes (the C++ scheme, and the CLR scheme). But it's actually very tastefully done -- the only time you have to think about it is when designing the class, and instantiating it. If you want a CLR-capable class, you make it a ref class. If you are working with a ref class, you need to allocate it with gcnew (instead of new) and use ^ instead of *. So, for instance:

// C++
someClass *foo = new someClass;

// CLR
someClass ^foo = gcnew someClass;

That's the only differences you have to remember in terms of allocation. The rest is the same. It's been fun teaching myself a new language, though I must admit that I'm bored with making yet another desktop wallpaper changer application. Any ideas for a good "learning" project?

3) Speaking of the CLR, Microsoft's announcement today was rather interesting. I suspect that their initial push into cross-platform with Silverlight is going to be focusing on Flash replacements. However, if I know Microsoft, there's an internal push for the rest of the framework as well. I don't think this will have any real effect on REALbasic however since REALbasic has a vested interest in being the best cross-platform tool on all platforms, while Microsoft's interests are always going to push developers towards Windows as the platform of choice. Anyone remember Java?

4) I've been using Visual Studio's form editor with my playing around with C++/CLI, and it's been rather interesting experiencing their form editor from a naive user's perspective. I've not had that with REALbasic's form editor for many years, and so it's easy to forget what things trip up new users. So don't be too shocked if you see some of the good ideas from the VS IDE make it into the RB IDE sometime in the future. I've already got a neat little technology preview which I'm hoping to expand on for a future release (though it won't be r3, that much I can assure you). Are there features from VS that you find invaluable that you wish RB had? What features are those?

Ok, that's enough of a round-up for one day. Sorry about the lack of posts, and if I seem crankier to you (in any sort of dealings), I apologize -- once this whole moving experience is done, I'll be back to my usual, jovial self.

12 Comments

Java ... you mean that really great cross platform server side language ? There are some awesome frameworks for Java that make doing a scalable fault tolerant server that can run on anything easy. WebObjects is one.

Beyond that Java as a desktop language is yuck mostly because the UI frameworks have not been quite native enough so you can spot a Java app a mile away.

Not sure about the VS IDE adnd how it works so I have no idea about features from it that would be useful.

I do know one thing I'd find useful is being able to visually lock controls together and visually specify resizing behaviours instead of just to the left top right and bottom of the containing window.

There used to be a demo called Foam that had some great ideas about how to present that. (not sure if the download here is valid or not http://www.download.com/Foam/3000-2417_4-10307340.html)

What other things would I like to see ?
Being able to do lots of normal stuff with multiple selections in a project (select several items and export, encrypt, etc)

Norman, are you referring to Foam, the Java GUI design tool?

http://www.computersinmotion.com/?act=products&pid=3

Microsoft and cross-platform compatibility. What a joke.

I, for one, don't believe this for one second. I give this new technology a couple of years and it will whither on the vine like all of MS's cross-platform efforts ala Internet Explorer and soon, Mac Office.

From what I've read the development tools are Windows ONLY. So what's the point of being cross-platform if they aren't going to make the development tools cross-platform. Nothing like eating your own dog food for a product to work better.

@Bob -- perhaps there's a reason why a lot of Microsoft's previous efforts "withered" though. I would certainly understand if they dropped Mac support for things just because of the shear amount of bashing they get as a "reward" for their efforts. ;-)

@Scott - yes but if you try to grab a demo I got a weird error about referral's

@Aaron - they're dropping VBA support in Mac office for some odd reason which really kills the cross platform compatibility of that product. Not sure why.

If you review MS' financials I doubt you can see how much money they make fom Mac Office. But it used to be broken out and it was very significant $ so I doubt they keep Mac Office ut of altruistic reasons. It makes a pile of money.

One reason some x-platform efforts died is because MS did straight ports of Windows software and that gave crappy results.

If MS would let their Mac BU make MS softare without crippling it (ie/ Messenger on Mac cannot do video or voice) and actually just interoprate with MS other products on a level footing they'd do very well. But they seem to cripple stuff for no reason on the Mac.

They can make great software for the Mac (Word and Excel got started there) they just need to decide to do it more often.

That foam demonstration is pretty nifty. I like all of those visual graphics that help to align the widgets. Did you notice that there is an "Advanced Edition" with a bevy of interesting tools... More than I would ever need but some of them look useful:

Processes:
View a real-time list of all running processes and their instantaneous memory usage
Watch file access
Watch IP traffic
Watch threads executing under any process
See why threads are blocking
Kill or suspend individual threads
See the files a process has open
View which executable modules a process has loaded
List DLL imports and exports
Get a hierarchical list of all executables required to run a processes
View related (parent and child) processes
Use "Sure Kill" to terminate a process, overriding authorization restrictions
Use "Active Kill" to terminate a process and prevent any other processes of that type from running
View a memory map that shows how a process is using memory
Search, edit, and track changes a process is making to memory
Watch how a process is using the Windows function calls with a Windows API Execution monitor.
Flash the top level windows associated with a process
Reclaim physical memory
Services and Devices:
View a real-time list of services and their status
See dependent services
See and control the process associated with a service
View a verified hierarchical list of all modules required to start a service
Multi-select start or stop any services
See all installed device drivers and their status
Uncontrollable service? Use "Sure Kill" to kill the associated process

Users:
View other users accessing your system along with their domain and the amount of time they have been logged on
View files and directories accessed by other users
Instantly knock a user off your system and keep them off until you release the block
Send any selected user or any user on the network a message. The message shows up as a message box on their system without pre-installing anything on the target machine

At the System Level:
Search for processes that have a file or directory locked
Monitor access to all files
Monitor TCP/IP traffic
Monitor TCP and UDP active ports
Verify and view modules required to run an executable. Any errors, such as an out-of-date DLL, are flagged.

@Aaron, if Microsoft had a history of actually following through with their cross-platform strategies I'd be more inclined to believe them. Removing VBA from Mac Office is just the last example.

Actions speak louder than words.

Joe- I think you're mixing up the features of Foam with Take Control!


Are there features from VS that you find invaluable that you wish RB had? What features are those?

To start, how about:

- Toolstrip/Toolbar editor? ;-)

- Have the StaticText AUTO-ADJUST its dimension when you are changing the text. It annoys me a lot when I put a static text on RB, change the text and it does not auto-adjust.

- On code editor, have a similar feature that shows (I suppose on a kind of tooltip window) under the line you are typing the info for the method you are using (on RB it displays on the status bar). On VS if there's more than one method with same name this tooltip window allows you to check the other methods - it has "1 of XX" and you can navigate to see the other possibilities. This is very useful if you have several methods on your app with same name. And if this is not asking too much, have it bolding the text on the tooltip while you are typing the parameters.

- Controls pane (Toolbox on VS): have it working in a similar way with an "Auto Hide" feature. Option to collapse it to the left (hide) and when mousing over it to reaper (pop out). Option to keep it always visible. Have controls also separated into categories: all controls, common controls, and so on.

- Properties pane: it would be great also to have on RB a similar properties pane where you can expand/collapse the various categories and sub-categories, like a hierarchical listbox. And have a "tips" area at bottom that displays what the select propertie is about. Just look at how it looks like for a button.

BUT... I would prefer that you (or someone on RS) didn't waste any time on these new features until all those nasting bugs are fixed, new releases get properly tested and with time and some of the controls have the features completed, like the toolbar (no drop down menu buttons, no option to display text on right and so on. A very imcomplete control!).

@Carlos --

1) good thing we have a toolbar editor. ;-) Seriously though, I need more detail on that one.

2) Yes, auto-sizing controls is a good idea. That's one of those little things that makes life a lot easier -- of COURSE you want the text to be shown.

3) I know the feature you're talking about. It's part of intellisense. I've used it very rarely because when I'm coding, I don't want to have to click around. I want to code! But having an up-down arrow widget in the status bar area isn't a bad idea since it allows showing multiple pieces of information as well as multiple lines. However, the tricky part with that is making sure the act of bringing the mouse over to see more information doesn't trigger a different status bar tip. It's a tricky problem.

4) Oh god, the toolpane on VS annoys the hell out of me to no end! If you have it pinned, then it shows up in the code editor, which is worthless since there's no use there! And if it auto-hides, then it *covers the damned window I'm designing!* when it pops out! And since you can't move the designed window, you're screwed. They really blew it on that feature, IMO.

5) Yes, the headers could be clicked on to expand or contract the properties contained. But honestly, how much is that used in practice? I've never used it, and I've asked friends before, and most of them didn't even notice it.

@Aaron:

About 3: As you are a top programmer you don't need those kind of "intelli" things near the code when you're typing... but they are very useful for guys like me. I often have to check the modules and classes on RB to see what method I want to use. If we had that tooltip window (could be set to display as an option or only while typing code - not when mousing over) or anything similar than the one we had on RB 5.5 it would also help. Having it on status bar with arrows... hummm...

About 4 and 5: I can live without them ;-)

About 1: Please take serious thoughs on this and also to complete the toolbar control - thanks!

@Carlos -- About #1: if only you were in the betas program... ;-)

Leave a comment

Disclaimer

I'm currently an employee of REAL Software. My blog is mine. The opinions represented in this blog are mine as well and may not represent my employer's opinions. All original material is copyrighted and property of the author.

REALbasic® is a registered trademark of REAL Software, Inc. REAL SQL Server™ and Lingua™ are pending trademarks of REAL Software, Inc. All rights reserved.