Netsuite woes, frustrated, difficult, Poorly documented. These are the words we commonly see on Netsuite development related forums and posts. But there are aspects of Netsuite Development which are very incredible. In this post I will highlight few of those.
Client Side Scripting
Most of the SuiteScript API functions are available on client side that means we can run the same code both on server-side and client side. There are whole programming languages relying on this feature. This feature also gives the ability to test and debug server side code on your browsers.
As you can see in the image below, I have opened a Edit Customer page and in Firebug Console I can access the current Customer through functions like nlapiGetFieldValue. Also I can use functions like nlapiSearchRecord to test the code in the browser console.

Transaction Handling
Programatically handling the Transaction is very awesome. All the line items of a transaction can be accessed as separate transactions. Different type of transactions (Sales Orders, Cash Sales or Cash Refunds) can be accessed separately or can be accessed at the same time as transactions.
Field Customization
We can add custom fields to Netsuite entities/transactions at almost any level and these custom fields will be shown/handled in the same ways as the original fields.